Обеспечение доступности $ _SESSION в контроллерах
Я пытаюсь сделать$_SESSION
глобальный доступный в контроллерах моего фреймворка, написанного с нуля. Это не совсем MVC, уровень представления состоит из двух родительских классов с несколькими дочерними классами.
Не вдаваясь в подробности, мои взгляды представлены вclass Temp,late
class Template{
protected $_controller;
protected $_action;
function __construct($controller,$action) {
$this->_controller = $controller;
$this->_action = $action;
}
function render(){
if (file_exists(APP_ROOT . DS . 'app' . DS . 'view' . DS . $this->_controller . DS . $this->_action . '.php')) {
include (APP_ROOT . DS . 'app' . DS . 'view' . DS . $this->_controller . DS . $this->_action . '.php');
}
}
}
Тогда я звонюTemplate::render()
в деструкторе в моем родительском контроллере после создания экземпляраclass Template
в конструкторе. Все классы загружаются автоматически.
class CoreController {
protected $_controller;
protected $_action;
protected $_template;
function __construct($controller, $action) {
$this->_controller = ucfirst($controller);
$this->_action = $action;
$this->_template = new Template($controller,$action);
}
function __destruct() {
$this->_template->render();
}
}
Мой вопрос, как я могу сделать$_SESSION
доступно вCoreController
и когда именно он доступен во время последовательности выключения? Я пытался позвонить прямо вCoreController
а также внутриTemplate::render()
и всегда получать неопределенные предупреждения о переменных, однако определяя$_SESSION
по моему мнению работает. Причиной этого является то, что я хотел бы установить определенные переменные на основе того, установлен ли идентификатор сеанса, и я хотел бы сохранить большую часть логики представления в моих контроллерах. Заранее спасибо.