Symfony如何隔离应用程序的SESSION值?

时间:2014-04-01 13:59:14

标签: php session symfony

我试着理解Symfony如何隔离应用程序的SESSION值。 我创建了两个文件:

// test.php
session_start();
$_SESSION['aaa'] = 111;
var_dump($_SESSION);

// test2.php
session_start();
var_dump($_SESSION);

所以当我拨打http://localhost/test.php然后拨打http://localhost/test2.php时,我会在两个文件中获得相同的SESSION:

array(1) { ["aaa"]=> int(111) }

但是当我添加到symfony前端控制器app_dev.php的末尾时,下一个代码:

var_dump($_SESSION);

并尝试调用http://localhost/app_dev.php - 我只获得Symfony会话

array(3) { ["_sf2_attributes"]=> &array(0) { } ["_sf2_flashes"]=> &array(0) { } ["_sf2_meta"]=> &array(3) { ["u"]=> int(1396360435) ["c"]=> int(1396360433) ["l"]=> string(1) "0" } }

我无法访问我期望的array(1) { ["aaa"]=> int(111) }值。

为什么呢?如何使用这3个文件进行相互会话值?

1 个答案:

答案 0 :(得分:1)

Symfony默认使用NativeFileSessionHandler,并且在其他系统中不会预期此存储中的所有数据。

作为解决方案,您可以将本机会话处理程序创建为服务(Symfony / HttpFoundation包中已存在类)并将此处理程序设置为配置framework.session.handler_id

有关详细信息,请参阅docs