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

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