我一直在网上研究,但找不到答案。在Symfony2中,我了解可以通过config.yml
文件静态设置会话生存期。
但是,我需要能够根据代码中的某些情况设置会话的生命周期。是否可以以编程方式设置会话生存期?
答案 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。”