Silex会话设定了一生

时间:2015-04-29 18:46:06

标签: php symfony session session-cookies silex

如何更改Silex中的默认会话生存期。 默认值为30mn;

文档http://silex.sensiolabs.org/doc/providers/session.html#usage提供了线索,但没有显示如何执行此操作的示例。

当我设置这样的会话时:

$app['session']->set('username', 'my username');

会话变量已设置但在30毫秒后过期。

2 个答案:

答案 0 :(得分:2)

Silex使用Symfony组件。您可以使用migrate方法为特定会话设置到期日期。

例如:$app['session']->migrate(false, 3600);

Docs

设置所有会话的到期时间:

$app['session.storage.options'] = [
    'cookie_lifetime' => 3600
];

Source

答案 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.
相关问题