/** * @param GetResponseEvent $event * * @return GetResponseEvent */ public function onKernelRequest(GetResponseEvent $event) { try { $this->routerListener->onKernelRequest($event); } catch (NotFoundHttpException $e) { if (null !== $this->logger) { $this->logger->info('Request handled by the ' . $this->legacyKernel->getName() . ' kernel.'); } $response = $this->legacyKernel->handle($event->getRequest(), $event->getRequestType(), true); if ($response->getStatusCode() !== 404) { $event->setResponse($response); return $event; } } }
public function testLegacyKernelShouldHandleTheRequest() { $request = new Request(); $response = new Response(); $httpKernel = $this->prophesize('Symfony\\Component\\HttpKernel\\HttpKernelInterface'); $event = new GetResponseEvent($httpKernel->reveal(), $request, HttpKernel::MASTER_REQUEST); $baseRouterListener = $this->prophesize('Symfony\\Component\\HttpKernel\\EventListener\\RouterListener'); $baseRouterListener->onKernelRequest($event)->willThrow('Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException'); $kernel = $this->prophesize('Theodo\\Evolution\\Bundle\\LegacyWrapperBundle\\Kernel\\LegacyKernelInterface'); $kernel->handle($request, HttpKernel::MASTER_REQUEST, true)->willReturn($response); $routerListener = new \Theodo\Evolution\Bundle\LegacyWrapperBundle\EventListener\RouterListener($kernel->reveal(), $baseRouterListener->reveal()); $routerListener->onKernelRequest($event); $this->assertEquals($response, $event->getResponse()); }