嗨:我正在使用最新版本的Zend Framework(1.9.3PL1)。我在.ini文件中设置了以下内容
; Bootstrap session resources
resources.session.save_path = APPLICATION_PATH "/../data/sessions"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
接下来,我想在 bootstrap 中初始化 session :
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initSession()
{
// What goes here!?
}
}
我的问题是,initSession函数中包含什么?它应该返回什么(如果有的话)?
此外,如果我只是在其中开始 session ,则它无法识别.ini配置(例如,save_path不变)。但是,如果将启动位置移至 Controller ,则会识别.ini配置。
编辑:可能的解决方案是:
protected function _initSession()
{
// Based on http://framework.zend.com/issues/browse/ZF-6651
$session = $this->getPluginResource('session');
$session->init();
Zend_Session::start();
}
最佳答案
如果在应用程序配置中使用resources.session.*
-options,则 bootstrap 中不得包含_initSession()
方法,因为这些方法将覆盖插件资源session
(Zend_Application_Resource_Session
)的执行。配置文件中resources.session.*
-options的唯一退出将确保根据您的选项初始化 session 。
请阅读Zend_Application, Theory of Operation,以获取有关所谓的资源方法和资源插件的详细讨论。
关于zend-framework - Zend Framework应用程序 session 资源和 Bootstrap ,出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1477185/