vendor/shopware/core/Framework/Routing/RouteEventSubscriber.php line 43

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Framework\Routing;
  3. use Shopware\Core\Framework\Log\Package;
  4. use Shopware\Storefront\Event\StorefrontRenderEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpKernel\Event\RequestEvent;
  7. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  8. use Symfony\Component\HttpKernel\KernelEvents;
  9. use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
  10. /**
  11.  * @deprecated tag:v6.5.0 - reason:becomes-internal - EventSubscribers will become internal in v6.5.0
  12.  */
  13. #[Package('core')]
  14. class RouteEventSubscriber implements EventSubscriberInterface
  15. {
  16.     private EventDispatcherInterface $dispatcher;
  17.     /**
  18.      * @internal
  19.      */
  20.     public function __construct(EventDispatcherInterface $dispatcher)
  21.     {
  22.         $this->dispatcher $dispatcher;
  23.     }
  24.     public static function getSubscribedEvents(): array
  25.     {
  26.         $events = [
  27.             KernelEvents::REQUEST => ['request', -10],
  28.             KernelEvents::RESPONSE => ['response', -10],
  29.         ];
  30.         if (class_exists(StorefrontRenderEvent::class)) {
  31.             $events[StorefrontRenderEvent::class] = ['render', -10];
  32.         }
  33.         return $events;
  34.     }
  35.     public function request(RequestEvent $event): void
  36.     {
  37.         $request $event->getRequest();
  38.         if (!$request->attributes->has('_route')) {
  39.             return;
  40.         }
  41.         $name $request->attributes->get('_route') . '.request';
  42.         $this->dispatcher->dispatch($event$name);
  43.     }
  44.     public function render(StorefrontRenderEvent $event): void
  45.     {
  46.         $request $event->getRequest();
  47.         if (!$request->attributes->has('_route')) {
  48.             return;
  49.         }
  50.         $name $request->attributes->get('_route') . '.render';
  51.         $this->dispatcher->dispatch($event$name);
  52.     }
  53.     public function response(ResponseEvent $event): void
  54.     {
  55.         $request $event->getRequest();
  56.         if (!$request->attributes->has('_route')) {
  57.             return;
  58.         }
  59.         $name $request->attributes->get('_route') . '.response';
  60.         $this->dispatcher->dispatch($event$name);
  61.     }
  62. }