我有一个 Symfony2 应用程序,我必须从另一个非 symfony 应用程序读取会话集。
$_SESSION
像往常一样,非 symfony 应用程序只是将其会话设置为 。
但是,当我尝试读取此会话时,数据不存在。不管我怎么做
$session = $this->get('request')->getSession();
var_dump($session->all());
甚至(我知道我不应该这样做,但无论如何)
var_dump($_SESSION);
这给了我会话已经开始的错误,尽管我从未在 Symfony 应用程序中启动会话,但我不知道为什么会出现错误。告诉我这种方式是否真的有效,以便我可以调查session_start()
事情。
$session = new Session();
$session->start();
var_dump($session->all());
PHPSESSID
cookie 是在 Symfony2 应用程序中设置的,其值与非 symfony 应用程序中设置的 cookie 相同,但我的 Symfony2 应用程序只是拒绝读取会话的内容。($session->getName()
返回PHPSESSID
,要清楚)
(确切地说,两个应用程序都在同一个域但不同的子域下,并且我已经在 Symfony 应用程序中framework.session.domain
正确设置app/config.yml
并调用session_set_cookie_params
非 symfony 应用程序具有相同的域设置以允许在子域之间共享会话 cookie 即.example.com
)
那么你如何读取非 symfony 应用设置的 Symfony2 应用/控制器中的会话呢?谢谢。
如果这很重要,我正在使用 Symfony 2.1。