src/Hitso/Bundle/CommonBundle/EventListener/HttpSubscriber.php line 42

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Hitso\Bundle\CommonBundle\EventListener;
  4. use Doctrine\Common\Util\Debug;
  5. use Hitso\Bundle\MultiSiteBundle\MultiSite\SiteContext;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
  8. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  9. use Symfony\Component\HttpKernel\KernelEvents;
  10. class HttpSubscriber implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @var SiteContext
  14.      */
  15.     protected $siteContext;
  16.     public function __construct(SiteContext $siteContext)
  17.     {
  18.         $this->siteContext $siteContext;
  19.     }
  20.     public static function getSubscribedEvents()
  21.     {
  22.         return [
  23.             KernelEvents::RESPONSE => 'onKernelResponse',
  24.             KernelEvents::REQUEST  => ['onKernelRequest'100],
  25.         ];
  26.     }
  27.     public function onKernelRequest(GetResponseEvent $event)
  28.     {
  29.         $request $event->getRequest();
  30.         $site    $this->siteContext->getRunningSite();
  31.         if ($site->isContent()) {
  32.             $request->setLocale($site->getLocale());
  33.         }
  34.     }
  35.     public function onKernelResponse(FilterResponseEvent $event): void
  36.     {
  37.         if (!$event->isMasterRequest()) {
  38.             return;
  39.         }
  40.         $event->getResponse()->setCharset('UTF-8');
  41.     }
  42. }