【问题标题】:Silex session set a lifetimeSilex 会话设置生命周期
【发布时间】:2015-07-09 05:28:55
【问题描述】:
【问题讨论】:
标签:
php
symfony
session
session-cookies
silex
【解决方案1】:
Silex 使用 Symfony 组件。您可以使用migrate 方法为某个会话设置过期时间。
例如:$app['session']->migrate(false, 3600);
Docs
设置所有会话的过期时间:
$app['session.storage.options'] = [
'cookie_lifetime' => 3600
];
Source
【解决方案2】:
不要忘记,Silex 中的生命周期设置与 php.ini 中的生命周期设置之间必须有一些一致性。
默认情况下,PHP 生命周期会话设置为 1440 秒。如果您不更改此默认值,会话垃圾机制(由 /etc/cron.d/php5 运行)将删除“旧”会话(即 1440 秒不活动的会话)。
这里是/etc/cron.d/php5的解释:
# This purges session files in session.save_path older than X,
# where X is defined in seconds as the largest value of
# session.gc_maxlifetime from all your SAPI php.ini files
# or 24 minutes if not defined. The script triggers only
# when session.save_handler=files.
#
# WARNING: The scripts tries hard to honour all relevant
# session PHP options, but if you do something unusual
# you have to disable this script and take care of your
# sessions yourself.