<?php
declare(strict_types=1);
/**
* @author Maciej Kaczmarek <maciej.kaczmarek@autentika.pl>
*/
namespace Hitso\Bundle\MultiSiteBundle\EventListener;
use Doctrine\Common\Annotations\Reader;
use Doctrine\ORM\EntityManagerInterface;
use Hitso\Bundle\MultiSiteBundle\MultiSite\SiteContext;
use Hitso\Bundle\MultiSiteBundle\ORM\SiteIdFilter;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class SiteIdFilterConfigurator
{
/**
* @var EntityManagerInterface
*/
private $entityManager;
/**
* @var SiteContext
*/
private $context;
/**
* @var Reader
*/
private $reader;
public function __construct(EntityManagerInterface $entityManager, SiteContext $context, Reader $reader)
{
$this->entityManager = $entityManager;
$this->context = $context;
$this->reader = $reader;
}
public function onKernelRequest(GetResponseEvent $event)
{
$filters = $this->entityManager->getFilters();
if ($filters->has('site_id')) {
$filter = $filters->getFilter('site_id');
if ($filter instanceof SiteIdFilter) {
$filter->setContext($this->context);
$filter->setReader($this->reader);
}
}
}
}