我正在尝试在$_SESSION
从头开始编写的框架的控制器中使全局可用。它不完全是 MVC,表示层由两个父类和多个子类组成。
没有深入细节,我的观点呈现在class Template
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
在我的视图中定义是有效的。这背后的原因是我想根据是否设置会话 ID 来设置某些变量,并且我想将大多数表示逻辑保留在我的控制器中。提前致谢。