2014-01-16 73 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属性

相关问题