顯然,每一個關鍵我保存到Symfony2的話進入一個子項下:Symfony的會話避免_sf2_attributes
$session->set('foo', 'bar');
會導致:
array('_sf2_attributes' => array('foo' => 'bar'));
這是一個問題,因爲我建立一個應用程序與舊版代碼進行交互。我想使用Symfony的會話處理程序,但我希望應用程序的舊部分能夠從$_SESSION
中讀取。換句話說,我想
$session->set('foo', 'bar');
和
$_SESSION['foo'] = 'bar';
有同樣的效果。
我沒有看到任何configuration option來實現這一點。我用我設置爲
session:
handler_id: my_app.session_handler
特定的會話處理程序所以不會是Symfony的使用不同的會話名稱的問題。我能想到的唯一解決方案是在我的客戶會話處理程序(my_app.session_handler
)周圍創建一個新的會話處理程序類,用於檢查應用程序是否嘗試訪問_sf2_attributes
,但我認爲它非常難看,我甚至不確定是否會工作。
謝謝!
謝謝。我檢查了這個選項,但我不確定這是我能做的最好的。現在我對Session API非常熟悉,但是因爲整個系統對變量引用起作用,所以實現我想要的功能似乎相當困難。 – gphilip
終於想出了這個:https://gist.github.com/tcz/9756112醜陋的地獄,但工程。我在會話配置「storage_id」鍵中使用它,但沒有很好的記錄。謝謝! – gphilip
我有類似的問題,但這次與Memcached,在我的配置文件中我有handler_id:session.handler.memcached 這是在服務中定義的,但我的問題是會話不會存儲到使用$ session-> set('foo','bar'); 有幫助嗎? – Sekai