Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse PHP Method

onKernelResponse() public method

public onKernelResponse ( FilterResponseEvent $event )
$event Symfony\Component\HttpKernel\Event\FilterResponseEvent
    public function onKernelResponse(FilterResponseEvent $event)
    {
        if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
            return;
        }

        $response = $event->getResponse();
        $request = $event->getRequest();

        // do not capture redirects or modify XML HTTP Requests
        if ($request->isXmlHttpRequest()) {
            return;
        }

        if ($response->headers->has('X-Debug-Token') && $response->isRedirect() && $this->interceptRedirects) {
            if (null !== $session = $request->getSession()) {
                // keep current flashes for one more request
                $session->setFlashes($session->getFlashes());
            }

            $response->setContent($this->templating->render('WebProfilerBundle:Profiler:toolbar_redirect.html.twig', array('location' => $response->headers->get('Location'))));
            $response->setStatusCode(200);
            $response->headers->remove('Location');
        }

        if (self::DISABLED === $this->mode
            || !$response->headers->has('X-Debug-Token')
            || '3' === substr($response->getStatusCode(), 0, 1)
            || ($response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html'))
            || 'html' !== $request->getRequestFormat()
        ) {
            return;
        }

        $this->injectToolbar($response);
    }

Usage Example

 /**
  * @depends testToolbarIsInjected
  */
 public function testToolbarIsNotInjectedOnNonHtmlRequests()
 {
     $response = new Response('<html><head></head><body></body></html>');
     $response->headers->set('X-Debug-Token', 'xxxxxxxx');
     $event = new FilterResponseEvent($this->getKernelMock(), $this->getRequestMock(false, 'json'), HttpKernelInterface::MASTER_REQUEST, $response);
     $listener = new WebDebugToolbarListener($this->getTemplatingMock());
     $listener->onKernelResponse($event);
     $this->assertEquals('<html><head></head><body></body></html>', $response->getContent());
 }
All Usage Examples Of Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse