我写信是想看看你们中是否有人以前遇到过这个问题,并有机会了解为什么会发生在我身上。
这就是故事。
我在 Zend Framework v. 1.8 之前开发了许多 ZF 应用程序,然后我停止了大约 18 个月。现在我不得不开始一个新项目,我决定再次使用 Zend Framework。
在我的本地服务器上,我安装了 1.11.3 版本,所以我没有下载最新版本。
在将 Zend_Application 与 Bootstrap.php 文件一起使用之前,我曾经启动会话,将会话选项放在我的 config.ini 文件中,然后将它们加载到 Zend_Session 实例中,如下所示:
配置文件
sessions.name = NAME
sessions.use_only_cookies = 1
sessions.save_path = APPLICATION_PATH "/../tmp/sessions"
sessions.strict = on
sessions.remember_me_seconds = 1800
index.php(进入公共网络服务器目录)在启动应用程序之前:
Globals::startSession();
具有各种有用方法的自定义 Globals 类:
class Globals
{
static public function startSession()
{
$sessions_conf = self::getConfig()->sessions;
Zend_Session::setOptions($sessions_conf->toArray(););
Zend_Session::start();
}
}
这一直工作得很好,启用我的会话(与 Zend_Session_Namespace 一起使用)并将会话文件存储在 save_path 中。
使用 Zend_Application 手册告诉只需将会话选项存储在“部分”资源下的 application.ini 文件中,Zend_Session 将自动配置...
我是这样做的:
; SESSIONS
resources.session.name = NAME
resources.session.use_only_cookies = 1
resources.session.save_path = APPLICATION_PATH "/../tmp/sessions"
resources.session.strict = on
resources.session.remember_me_seconds = 1800
它没有用。所以我尝试使用(不是同时!) Bootstrap.php 文件中的 _initSession() 和 _initForceSession() 方法,将它们放在类的开头并将代码写入其中:
$this->bootstrap('session');
但是会话从来没有工作过,数据没有存储在http请求之间,会话文件也没有写入save_path......
请任何人告诉我这是否是正常行为(也许我在某处遗漏了某些东西......)?
显然,我解决了重新实现旧方法的问题(并且效果很好),但我想学习如何正确使用它。
提前致谢。