Zend会话似乎在每次页面加载时都会重新启动


Zend session seems to be restarted on each page load

我在尝试让Zend会话正常工作时遇到了很多麻烦。基本上,我需要做的是在站点加载时设置一次变量。然后,该变量应在会话的整个生命周期内保持不变。

为了使这一点更加清晰,让我们采用以下场景:

在Bootstap.php中,我有

protected function _initSession() {
    $session = new Zend_Session_Namespace();
    $session->testValue = rand(0, 100);
}

然后,我在应用程序的其他地方访问它,如下所示:

$session = new Zend_Session_Namespace();
echo $session->testValue;

现在,我希望$session->testValue被分配一次,并且该值在随后的每个页面请求中都是相同的。但实际上,$session->testValue每次都是一个新的随机数。

我做错了什么?

每次运行Bootstrap.php都会覆盖testValue属性。只有在尚未设置时才进行设置。

protected function _initSession() {
    $session = new Zend_Session_Namespace();
    if (!isset($session->testValue)) {
        $session->testValue = rand(0, 100);
    }
}