我正在基於cakephp 3開發一個基於php和mysql的處理器和內存使用方面的中等程度的項目,但爲用戶提供99%的時間完全相同的頁面。Session已經開始
所以我決定喜歡使用像我幾年前開發的this one這樣的緩存系統。它只是保存完整頁面的緩存html文件,避免對每個請求做所有的詳細說明。這是一個愚蠢的系統,但它的工作非常好。
問題是,我需要訪問會話變量進行一些檢查。要做到這一點我觸發session_start()
在我的緩存系統,有時CakePHP的拋出這個錯誤時的頁面是不是已經被緩存:
Session was already started
我怎樣才能避免這個錯誤?有沒有辦法在我的緩存系統中關閉會話,以便cakephp最終可以啓動一個新的?我曾嘗試與session_abort
和session_register_shutdown()
,但沒有工作,我甚至不知道這是做什麼,我需要正確的方法...
編輯:處理流程是:請求 - >緩存系統 - > cakephp。因此,我的session_start()
出現在cakephp之前,我傾向於不要碰到cakephp核心文件,這就是爲什麼其他問題對我沒有用處。我想在我的緩存系統中解決這個問題。
這不是一個重複的,至少不是http://stackoverflow.com/questions/10093264/load-session-start-only-if-session-does-not-exist的副本,如「問題」位於CakePHP內核中,不能簡單地像用戶級代碼那樣更改,這應該以不同的方式修復。 – ndm
不管是關閉會話還是讓CakePHP再次打開它是「_正確的方式_」,使用'session_abort()',「_doesn't work_」究竟發生了什麼可能意味着什麼? (它應該工作) – ndm