vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/EventListener/RouterListener.php line 57
<?php/** This file is part of Sulu.** (c) Sulu GmbH** This source file is subject to the MIT license that is bundled* with this source code in the file LICENSE.*/namespace Sulu\Bundle\WebsiteBundle\EventListener;use Sulu\Component\Webspace\Analyzer\RequestAnalyzerInterface;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpKernel\Event\FinishRequestEvent;use Symfony\Component\HttpKernel\Event\RequestEvent;use Symfony\Component\HttpKernel\EventListener\RouterListener as BaseRouterListener;use Symfony\Component\HttpKernel\KernelEvents;/*** This listener replaces the default RouterListener delivered by Symfony and adds the analyzing of the request as* required by Sulu. Validating the result can be deactivated by passing `false` to the `_requestAnalyzer` default in* the route.*/class RouterListener implements EventSubscriberInterface{public const REQUEST_ANALYZER = '_requestAnalyzer';/*** @var BaseRouterListener*/private $baseRouteListener;/*** @var RequestAnalyzerInterface*/private $requestAnalyzer;public function __construct(BaseRouterListener $baseRouterListener, RequestAnalyzerInterface $requestAnalyzer){$this->baseRouteListener = $baseRouterListener;$this->requestAnalyzer = $requestAnalyzer;}/*** Analyzes the request before passing the event to the default RouterListener from symfony and validates the result* afterwards.*/public function onKernelRequest(RequestEvent $event){$request = $event->getRequest();// This call is required in all cases, because the default router needs our webspace information// Would be nice to also only call this if the _requestAnalyzer attribute is set, but it's set on the next line$this->requestAnalyzer->analyze($request);$this->baseRouteListener->onKernelRequest($event);if (false !== $request->attributes->getBoolean(static::REQUEST_ANALYZER, true)) {$this->requestAnalyzer->validate($request);}}/*** Simply pass the event to the route listener, because we have nothing to add here.*/public function onKernelFinishRequest(FinishRequestEvent $event){$this->baseRouteListener->onKernelFinishRequest($event);}public static function getSubscribedEvents(){return [KernelEvents::REQUEST => [['onKernelRequest', 32]],KernelEvents::FINISH_REQUEST => [['onKernelFinishRequest', 0]],];}}