share(function (Application $app) { return new SessionHandlerFactory($app['cache.connection-factory']); }); } public function onKernelResponse(FilterResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $session = $event->getRequest()->getSession(); if ($session && $session->isStarted()) { $session->save(); } } /** * {@inheritdoc} */ public function boot(Application $app) { // Priority should be lower than test session mock listener $app['dispatcher']->addListener(KernelEvents::RESPONSE, array($this, 'onKernelResponse'), -129); } }