2014-01-16 75 views
0

我最近在現有網站上創建了一個新的symfony應用程序。然後,在這個新的應用程序中,我想閱讀舊應用程序的會話(類似於登錄用戶ID)。不幸的是,在每個應用程序中,會話是完全獨立的(我的意思是symfony會話,就像$ this-> getUser() - > getAttribute(「userSession」))。Symfony1.4訪問其他應用程序

我猜symfony的會話使用$ _SESSION實現的,如:

$_SESSION = array("symfonyapp1" => array(....), "symfonyapp2" => array(....)); 

於是我在舊的應用程序寫$_SESSION["test"] = "testStr"和寫var_dump($_SESSION["test"]);。屏幕只是打印「空」,所以我的猜測是錯誤的。

然後,我想也許我可以讀取某個應用程序的配置,然後獲取該應用程序的用戶。所以我在我的新應用程序中編寫了以下代碼:

require_once($_SERVER['DOCUMENT_ROOT'].'/../config/ProjectConfiguration.class.php'); 

$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false); 
$context = sfContext::createInstance($configuration); 
var_dump($context->getUser()->getAttribute("userId")); 

不幸的是,它打印出「null」。

我現在完全不知道。任何意見,不勝感激

+0

您是否已檢查包含所有會話屬性的調試欄(配置/用戶) –

+0

非常感謝您的回答ING。我已檢查(配置/用戶)。但是在新的應用程序頁面和舊的應用程序頁面中,(Config/User)數據完全不同,沒有會話屬性共享 – wander

回答

0

檢查您的應用程序的會話標識符。 PHP的默認會話ID PHPSESSID而據我記得默認的Symfony的1.4應用程序會話標識符只是symfony

您可以通過設置由modyfing apps/YOUR_APP_NAME/config/factories.yml文件,更改的Symfony的會話標識符:

all: 
    storage: 
    param: 
     session_name: PHPSESSID 

通過這樣做您的Symfony應用程序將與您的舊應用程序共享相同的會話ID,並且您將能夠在Symfony應用程序中讀取$_SESSION屬性

相關問題