[英]Strange Zend_Session behaviour using Zend_Application
我正在寫信,看看你們中是否有人以前曾遇到過此問題,並且有機會了解我為什么會發生此問題。
這就是故事。
我在Zend Framework v。1.8之前開發了許多ZF應用程序,但是我停了大約18個月。 現在,我不得不開始一個新項目,決定再次使用Zend Framework。
在本地服務器上,我安裝了1.11.3版本,因此沒有下載最新版本。
在將Zend_Application與Bootstrap.php文件一起使用之前,我曾經開始過會話,將會話選項放在config.ini文件中,然后將其加載到Zend_Session實例中,如下所示:
config.ini
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(進入公共Web服務器目錄):
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 ...
有人能告訴我這是否是正常行為嗎(也許我在某處錯過了某物...)?
顯然我解決了重新實現我的舊方法的問題(並且效果很好),但是我想學習如何正確使用它。
提前致謝。
這應該是打開它並起作用的情況,可能使它變得容易。
我認為您可能對如何在application.ini中設置選項有疑問:
; SESSIONS
resources.session.name = NAME
resources.session.name.use_only_cookies = 1
resources.session.name.save_path = APPLICATION_PATH "/../tmp/sessions"
resources.session.name.strict = on
resources.session.name.remember_me_seconds = 1800
根據參考手冊
要設置會話配置選項,請包括基本名稱(名稱在“ session。”之后的部分)作為傳遞給Zend_Session :: setOptions()的數組的鍵。
正確設置選項后,引導程序_initSession()應該可以正常工作。
public function _initSession()
{
Zend_Session::start();
}
PS我一直使用Zend_Session_Namespace,但很少處理全局會話。
在您的Bootstrap.php中添加
public function _initSession()
{
Zend_Session::start();
}
會話選項可以在application.ini中設置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.