custom/plugins/CrswCleverReachOfficial/src/Subscriber/Maintenance/StorefrontSubscriber.php line 50

Open in your IDE?
  1. <?php
  2. namespace Crsw\CleverReachOfficial\Subscriber\Maintenance;
  3. use Shopware\Core\SalesChannelRequest;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. use Symfony\Component\HttpKernel\Event\RequestEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. /**
  9.  * Class StorefrontSubscriber
  10.  *
  11.  * @package Crsw\CleverReachOfficial\Subscriber\Maintenance
  12.  */
  13. class StorefrontSubscriber implements EventSubscriberInterface
  14. {
  15.     /**
  16.      * @var RequestStack
  17.      */
  18.     private $requestStack;
  19.     /**
  20.      * @inheritDoc
  21.      */
  22.     public static function getSubscribedEvents(): array
  23.     {
  24.         return [
  25.             KernelEvents::REQUEST => [
  26.                 ['maintenanceResolver'100],
  27.             ],
  28.         ];
  29.     }
  30.     /**
  31.      * StorefrontSubscriber constructor.
  32.      *
  33.      * @param RequestStack $requestStack
  34.      */
  35.     public function __construct(RequestStack $requestStack)
  36.     {
  37.         $this->requestStack $requestStack;
  38.     }
  39.     /**
  40.      * @param RequestEvent $event
  41.      */
  42.     public function maintenanceResolver(RequestEvent $event): void
  43.     {
  44.         $master $this->requestStack->getMasterRequest();
  45.         if (!$master || !$master->attributes->get(SalesChannelRequest::ATTRIBUTE_IS_SALES_CHANNEL_REQUEST)) {
  46.             return;
  47.         }
  48.         $salesChannelMaintenance $master->attributes
  49.             ->get(SalesChannelRequest::ATTRIBUTE_SALES_CHANNEL_MAINTENANCE);
  50.         if (!$salesChannelMaintenance) {
  51.             return;
  52.         }
  53.         $request $event->getRequest();
  54.         $route $request->attributes->get('resolved-uri');
  55.         if (strpos($route'cleverreach') !== false) {
  56.             $master->attributes
  57.                 ->set(SalesChannelRequest::ATTRIBUTE_SALES_CHANNEL_MAINTENANCEfalse);
  58.         }
  59.     }
  60. }