根据documentation,可以通过config.yml 管理正常的会话生命周期:
framework:
session:
cookie_lifetime: 3600
要将生命周期设置为一年:3600*24*365 = 86400*365 = 31536000。简单:)。
这会将会话 cookie 的生命周期设置为 1 小时。您可以配置许多其他内容,但这就是为什么我提供了文档链接。
如果您坚持手动执行此操作,在特定案例/控制器中,则将选项数组传递给控制器。也许这可以代替使用 setOptions 方法:如果您的 php.ini 包含:
session.auto_start = 1
然后创建NativeSessionStorage 实例将自动并立即创建会话,具有默认生命周期。之后设置它几乎没有区别。检查您的 ini 设置,或执行以下操作:
$test = new NativeSessionStorage();
var_dump($test->isStarted())
如果它转储true,请尝试:
$lifetime = new NativeSessionStorage(
array(
'cookie_lifetime' => 31536000
)
);
关于 Symfony2 会话的所有内容都可以在 here 找到。
如果您使用的是 Symfony2.4,文档中有一个特殊部分处理 remember-me functionality,正如 Jakub Polák 指出的那样。它的本质是复选框必须被称为_remember_me,config.yml 必须定义一个%secret% 值,并且您将其(定制的)版本添加到您的security.yml 文件中:
firewalls:
main:
remember_me:
key: "%secret%"
lifetime: 31536000
path: /
domain: ~ # Defaults to the current domain from $_SERVER
但文档解释了这一切,但您必须“浏览”手册一点。例如,如果您想为特定部分指定不同的记住我行为,请更改上面 yml sn-p 中的main,并添加一个pattern 设置,如explained here。
你可能最好扫描the entire security section。