2015-01-26 37 views
0

對不起,如果在我找不到之前已詢問此問題。我找不到我正在尋找的答案。傳統應用程序和Symfony2之間的橋會話數據

我有一個遺留應用程序,我用Symfony2重建,不幸的是我需要平行運行一段時間,直到我可以完成重建整個系統。我需要讓symfony能夠訪問遺留會話數據以便能夠運行的部分。

我發現這個從Symfony的網站:http://symfony.com/doc/current/cookbook/session/php_bridge.html http://symfony.com/doc/current/components/http_foundation/session_php_bridge.html

但我不明白是配置需要做何林應該調用會話啓動,以及如何從我的新的訪問會話數據應用。

我會把我在symfony中給出的例子放在我創建的每個控制器中嗎?

use Symfony\Component\HttpFoundation\Session\Session; 
use Symfony\Component\HttpFoundation\Session\Storage\PhpBridgeSessionStorage; 

// legacy application configures session 
ini_set('session.save_handler', 'files'); 
ini_set('session.save_path', '/tmp'); 
session_start(); 

// Get Symfony to interface with this existing session 
$session = new Session(new PhpBridgeSessionStorage()); 

// symfony will now interface with the existing PHP session 
$session->start(); 

似乎應該有一種方法來集中它。

UPDATE 該手冊給出了一個例子,但如果它應該在控制器,服務,實體,或配置去的地方卻沒有說。

我試着在控制器中使用示例代碼,當我在$ session上執行print_r時,我看不到任何舊式會話數據。

**

在此先感謝。

+1

那麼你嘗試過了。顯示一些代碼和努力。 – 2015-01-26 18:20:10

+0

@Paziツ這是問題的一部分。 Symfony手冊中給出的示例不會說明我需要修改哪些文件。如果我不知道如何放置它們,我如何顯示示例? – 2015-01-26 18:41:45

+0

你已經在[TheodoEvolutionSessionBundle](https://github.com/theodo/TheodoEvolutionSessionBundle)上看過了嗎?這實現了「遺留應用程序和Symfony2之間的會話橋」。支持symfony1也。請參閱文檔。 – Matteo 2015-01-27 08:11:41

回答

2

您正在查看的是symfony使用的組件的示例代碼。 Symfonys會話從參數設置到app/config.yml中初始化。組件說明僅在您使用symfony以外的組件時纔有。你想要的是第一個。然而,使用:

#app/config.yml 
framework: 
    session: 
     storage_id: session.storage.php_bridge 
     handler_id: session.handler.native_file 

意味着,如果你包括你的其他應用程序中的symfony symfony的地方進行實例化之前session_start()被調用時使用。我沒有測試過這個,但它仍然可以讓它們並行運行,但是你可能最終不得不對會話處理器做一些定製。

也許考慮使用PDO的會話處理程序:http://symfony.com/doc/current/cookbook/configuration/pdo_session_storage.html

+0

感謝您的洞察力。這是否意味着我必須將symfony代碼放在我的遺留系統中才能訪問Symfony中遺留系統的會話數據?再次感謝! – 2015-01-27 01:14:51

+0

在一些玩配置後。我能夠獲得傳統的會話數據。感謝您的見解。第一個配置是我需要的正確配置。還使用$ session = new Session(new PhpBridgeSessionStorage()); $ session-> migrate();訣竅。再次感謝! – 2015-01-27 17:35:26

+0

嗨,你是如何最終構建項目的?您是否在舊版應用程序中添加了symfony項目?謝謝! – amcastror 2017-02-20 22:07:20

相關問題