如何更改Silex中的默认会话生存期。 默认值为30mn;
文档http://silex.sensiolabs.org/doc/providers/session.html#usage提供了线索,但没有显示如何执行此操作的示例。
当我设置这样的会话时:
$app['session']->set('username', 'my username');
会话变量已设置但在30毫秒后过期。
答案 0 :(得分:2)
Silex使用Symfony组件。您可以使用migrate
方法为特定会话设置到期日期。
例如:$app['session']->migrate(false, 3600);
设置所有会话的到期时间:
$app['session.storage.options'] = [
'cookie_lifetime' => 3600
];
答案 1 :(得分:1)
不要忘记你必须在Silex的生命周期设置和php.ini中的生命周期设置之间保持一致。
默认情况下,PHP生存期会话设置为1440秒。如果您没有更改此默认值,则会话垃圾机制(由/etc/cron.d/php5运行)将删除" old"会话(即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.