我試圖使我的框架的控制器中的$_SESSION
全局可用從頭開始編寫。它不是MVC,表示層由兩個具有多個子類的父類組成。
沒有進入非常詳細,我的意見是一個構造函數中實例化class Template
後呈現在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 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();
}
}
我的問題是如何才能讓在CoreController
提供$_SESSION
,準確地在關斷期間可供選擇?我試過在CoreController
以及Template::render()
中直接調用它,並總是獲取未定義的變量警告,但是在我的視圖中定義了$_SESSION
。這背後的原因是我想根據是否設置會話ID來設置某些變量,並且希望將大多數表示邏輯保留在我的控制器中。提前致謝。
只是在過程的引導階段再次調用session_start,你應該能夠過來請求 – Orangepill
的生活得到您的建議的偉大工程,謝謝!你的服務器提示有一天是一個救星。我想知道我是否應該做teresko建議並在模型層中使用它,這可能需要通過調度程序發送它,如果我挑剔的話,這似乎是一個更好的方法。 – dcd0181
恕我直言,它屬於控制器。如果你把它放在模態中,你正在建立需要會話的模態和使用模式之間的依賴關係,所以在腳本中使用模態說不可能。 – Orangepill