src/Hitso/Bundle/MultiSiteBundle/EventListener/SiteIdFilterConfigurator.php line 39

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4.  * @author Maciej Kaczmarek <maciej.kaczmarek@autentika.pl>
  5.  */
  6. namespace Hitso\Bundle\MultiSiteBundle\EventListener;
  7. use Doctrine\Common\Annotations\Reader;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Hitso\Bundle\MultiSiteBundle\MultiSite\SiteContext;
  10. use Hitso\Bundle\MultiSiteBundle\ORM\SiteIdFilter;
  11. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  12. class SiteIdFilterConfigurator
  13. {
  14.     /**
  15.      * @var EntityManagerInterface
  16.      */
  17.     private $entityManager;
  18.     /**
  19.      * @var SiteContext
  20.      */
  21.     private $context;
  22.     /**
  23.      * @var Reader
  24.      */
  25.     private $reader;
  26.     public function __construct(EntityManagerInterface $entityManagerSiteContext $contextReader $reader)
  27.     {
  28.         $this->entityManager $entityManager;
  29.         $this->context       $context;
  30.         $this->reader        $reader;
  31.     }
  32.     public function onKernelRequest(GetResponseEvent $event)
  33.     {
  34.         $filters $this->entityManager->getFilters();
  35.         if ($filters->has('site_id')) {
  36.             $filter $filters->getFilter('site_id');
  37.             if ($filter instanceof SiteIdFilter) {
  38.                 $filter->setContext($this->context);
  39.                 $filter->setReader($this->reader);
  40.             }
  41.         }
  42.     }
  43. }