2012-09-27 30 views
2

我有一個Symfony2應用程序,代表不需要持久會話的寧靜應用程序。將Symfony2設置爲不存儲會話數據

對於應用程序的每個請求,在給定默認會話配置的情況下,並且假定客戶端忽略會話cookie,將在缺省會話保存路徑app/cache/<env>/sessions中創建一個新的會話文件。

該應用每天收到很多請求,導致大量不需要的會話文件。運行rm -Rf app/cache/prod/session/*需要幾分鐘才能完成。

我寧願如果應用程序沒有存儲任何會話數據。

我已經嘗試了應用程序配置會話保存路徑設置爲/dev/null/dev/null/sessions但這個結果無論是由於現有的(爲/dev/null)或目錄中的例外,由於指定的路徑是不是一個目錄(/dev/null/<anything>)。

framework: 
    session: 
     save_path: /dev/null 

我可以看到我可以從閱讀session documentation做的最好的是無效的會議,這清除所有會話屬性並重新生成會話ID。這不會讓我處於沒有會話和沒有持久會話文件的狀態。

我可以得到Symfony2不存儲請求的任何會話數據嗎?

回答

1

您可以定義自己的會話處理程序,並用它代替session服務別名:

services: 
    session: 
     class: Path\To\Your\Session\Class 

您可以檢查執行標準的會話類Symfony\Component\HttpFoundation\Session\Session