2012-04-26 46 views

回答

3

此功能被添加recently。您可以更新到此提交或修补程序。从代码,似乎你可以通过以下方式设置过期时间,

$this->container->get('session')->getMetadataBag()->stampNew(300); 
3

假设你的会话已经创建,您可以用achive你的目标:

$this->container->get('session')->migrate($destroy = false, $lifetime = null); 

$destroy:是否删除旧的会话或者将其留给垃圾收集。

$lifetime:设置会话cookie的cookie的生命期。空值将使系统设置保持不变,0将Cookie设置为在浏览器会话中过期。时间以秒为单位,并且不是Unix时间戳。

1

要控制活动会话的时间(和空闲时间太长),你必须这样做,在控制器这种方式(自提:session configuration在官方文档):

$session->start(); 
if (time() - $session->getMetadataBag()->getCreated() > $maxTime) { 
    $session->invalidate(); 
    throw new SessionExpired(); // redirect to expired session page 
} 

当时间到达你$ maxTime会话是“关闭”的。您可以将此代码作为一个函数从您的应用程序的后端放入,以调用不同的方法来控制时间。