我希望我的应用程序中有一个全局监听器在会话超时后重定向用户。
我正在收听以下kernel.exception
事件SessionUnavailableException
:
public function onKernelException(GetResponseForExceptionEvent $event)
{
$exception = $event->getException();
if ($exception instanceof SessionUnavailableException) {
//start new session and set flash here...
$response = new RedirectResponse($this->router->generate('homepage'));
$event->setResponse($response);
}
}
此代码在会话超时后执行。问题是如果我像这样离开代码,异常将在无限循环中触发。我需要在此处开始并保存会话,但找不到如何执行此操作...
有什么帮助吗?
顺便问一下,这是实现我目标的聪明方法吗?