custom/plugins/BpaPlatformVideoIframeCookieHandler/src/Subscriber/ResponseSubscriber.php line 42

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Bpa\VideoIframeCookieHandler\Subscriber;
  3. use Bpa\VideoIframeCookieHandler\Service\DomModifier;
  4. use Shopware\Core\PlatformRequest;
  5. use Shopware\Core\System\SalesChannel\SalesChannelContext;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  8. use Symfony\Component\HttpKernel\KernelEvents;
  9. class ResponseSubscriber implements EventSubscriberInterface
  10. {
  11.     /**
  12.      * @var DomModifier
  13.      */
  14.     private DomModifier $domModifier;
  15.     /**
  16.      * @param DomModifier $domModifier
  17.      */
  18.     public function __construct(DomModifier $domModifier)
  19.     {
  20.         $this->domModifier $domModifier;
  21.     }
  22.     /**
  23.      * @return string[]
  24.      */
  25.     public static function getSubscribedEvents(): array
  26.     {
  27.         return [
  28.             KernelEvents::RESPONSE => 'handleResponse',
  29.         ];
  30.     }
  31.     /**
  32.      * @param ResponseEvent $event
  33.      * @return void
  34.      */
  35.     public function handleResponse(ResponseEvent $event): void
  36.     {
  37.         $request $event->getRequest();
  38.         $response $event->getResponse();
  39.         $context $request->attributes->get(PlatformRequest::ATTRIBUTE_SALES_CHANNEL_CONTEXT_OBJECT);
  40.         if (!$context instanceof SalesChannelContext) {
  41.             return;
  42.         }
  43.         $response->setContent(
  44.             $this->domModifier->process($response->getContent(), $context)
  45.         );
  46.     }
  47. }