Jas*_*son 8 session zend-framework
嗨:我使用的是最新版本的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
Run Code Online (Sandbox Code Playgroud)
接下来我想在我的引导程序中初始化我的会话:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initSession()
{
// What goes here!?
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,initSession函数有什么用处?它应该返回什么,如果有的话?
此外,如果我只是在那里开始会话,它不会识别.ini配置(例如,save_path不变).但是,如果将开头移动到控制器,则会识别.ini配置.
编辑:一个可能的解决方案是:
protected function _initSession()
{
// Based on http://framework.zend.com/issues/browse/ZF-6651
$session = $this->getPluginResource('session');
$session->init();
Zend_Session::start();
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*rig 11
如果resources.session.*在应用程序配置中使用-options,则必须_initSession()在引导程序中没有方法,因为这些方法将覆盖插件资源session(Zend_Application_Resource_Session)的执行.resources.session.*配置文件中-options 的唯一退出将确保会话将根据您的选项进行初始化.
请阅读Zend_Application,Operation of Operation,详细讨论所谓的资源方法和资源插件.
Stefan非常正确,您将覆盖使用这些应用程序选项的默认会话资源.
如果要定义自己的_initSession()方法并仍然访问这些选项,请使用以下内容:
protected function _initSession()
{
$options = $this->getOptions();
$sessionOptions = array(
'save_path' => $options['resources']['session']['save_path']
);
Zend_Session::setOptions($options);
Zend_Session::start();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10735 次 |
| 最近记录: |