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

Session 以编程方式在Symfony2中设置会话生存期,session,symfony,Session,Symfony,我一直在网上搜索,但找不到答案。在Symfony2中,我知道可以通过config.yml文件静态设置会话生存期 但是,我需要能够根据代码中的某些情况设置会话的生存期。是否可以通过编程方式设置会话生存期?在Symfony2中,您似乎无法动态更改会话存储容器的属性:请参阅,以获取可用的实际实现界面,请注意,其中没有允许您更改生存期值的内容 但是,会话类默认使用session\u get\u cookie\u params方法设置会话生存期:您可以通过调用来调整这些值(最好在会话初始化之前:尝试在控制

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


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

在Symfony2中,您似乎无法动态更改会话存储容器的属性:请参阅,以获取可用的实际实现界面,请注意,其中没有允许您更改生存期值的内容

但是,会话类默认使用
session\u get\u cookie\u params
方法设置会话生存期:您可以通过调用来调整这些值(最好在会话初始化之前:尝试在控制器中尽早调用它)。查看这是否适用于您。

根据具体情况(例如,不适用于具有csrf保护的post请求),也可以使用迁移:

$request->getSession()->migrate();
根据文档:“将当前会话迁移到新会话id,同时保留所有会话属性。”