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

问题描述

| 我一直在在线研究,但找不到答案。在Symfony2中,我了解可以通过
config.yml
文件静态设置会话生存期。 但是,我需要能够根据代码中的某些情况设置会话的生存期。是否可以通过编程设置会话生存期?     

解决方法

        似乎在Symfony2中,您无法即时更改会话存储容器的属性:有关实际的实现接口,请参阅https://github.com/symfony/HttpFoundation/blob/master/SessionStorage/SessionStorageInterface.php。可用,请注意其中没有任何内容可让您更改生命周期值。 但是,默认情况下,会话类使用
session_get_cookie_params
方法设置会话寿命:您可以通过调用session_set_cookie_params来调整这些值(最好在会话初始化之前:尝试在控制器中尽早调用它)。看看是否适合您。     ,        视情况而定(例如,不以具有csrf保护的形式发布请求),也可以使用migration:
$request->getSession()->migrate();
根据文档:\“将当前会话迁移到新的会话ID,同时保留所有会话属性。”