以编程方式在Symfony2中设置会话生存期

时间:2011-06-25 01:49:01

标签: session symfony

我一直在网上研究,但找不到答案。在Symfony2中,我了解可以通过config.yml文件静态设置会话生存期。

但是,我需要能够根据代码中的某些情况设置会话的生命周期。是否可以以编程方式设置会话生存期?

2 个答案:

答案 0 :(得分:6)

在Symfony2中,您似乎无法动态更改会话存储容器的属性:请参阅https://github.com/symfony/HttpFoundation/blob/master/SessionStorage/SessionStorageInterface.php了解可用的实际实现界面,并注意其中没有任何内容可以让您改变终身价值。

但是,默认情况下,会话类使用session_get_cookie_params方法设置会话生存期:您可以通过调用session_set_cookie_params来调整这些值(最好在会话初始化之前:尝试尽早调用它尽可能在控制器中)。看看它是否适合你。

答案 1 :(得分:0)

根据具体情况(例如,不是以表单中的csrf保护的发布请求),也可以使用迁移:

$request->getSession()->migrate();

根据文档:“在保持所有会话属性的同时将当前会话迁移到新的会话ID。”