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

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