src/EventSubscriber/TwigEventSubscriber.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Repository\CategoriesRepository;
  4. use App\Repository\MarquesRepository;
  5. use App\Repository\ModelesRepository;
  6. use App\Repository\PubImageRepository;
  7. use App\Repository\QuartiersRepository;
  8. use App\Repository\VillesRepository;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  11. use Symfony\Component\HttpKernel\KernelEvents;
  12. use Twig\Environment;
  13. class TwigEventSubscriber implements EventSubscriberInterface
  14. {
  15.     private  Environment $twig ;
  16.     private CategoriesRepository $categoriesRepository;
  17.     private VillesRepository $villesRepository;
  18.     private QuartiersRepository $quartiersRepository;
  19.     private PubImageRepository $pubImageRepository;
  20.     private MarquesRepository $marquesRepository;
  21.     private ModelesRepository $modelesRepository;
  22.     /**
  23.      * @param Environment $twig
  24.      * @param CategoriesRepository $categoriesRepository
  25.      * @param VillesRepository $villesRepository
  26.      * @param QuartiersRepository $quartiersRepository
  27.      * @param PubImageRepository $pubImageRepository
  28.      * @param MarquesRepository $marquesRepository
  29.      * @param ModelesRepository $modelesRepository
  30.      */
  31.     public function __construct(Environment $twigCategoriesRepository $categoriesRepositoryVillesRepository $villesRepository,
  32.      QuartiersRepository $quartiersRepositoryPubImageRepository $pubImageRepositoryMarquesRepository $marquesRepositoryModelesRepository $modelesRepository )
  33.     {
  34.         $this->twig $twig;
  35.         $this->categoriesRepository $categoriesRepository;
  36.         $this->villesRepository $villesRepository;
  37.         $this->quartiersRepository $quartiersRepository;
  38.         $this->pubImageRepository $pubImageRepository;
  39.         $this->marquesRepository =$marquesRepository ;
  40.         $this->modelesRepository$modelesRepository;
  41.     }
  42.     public function onKernelController(ControllerEvent $event): void
  43.     {
  44.         $this->twig->addGlobal('categories',$this->categoriesRepository->findBy([],["libelle"=>"ASC"]));
  45.         $this->twig->addGlobal('villes'$this->villesRepository->findAll());
  46.         $this->twig->addGlobal('quartiers'$this->quartiersRepository->findAll());
  47.         $this->twig->addGlobal("pubImages"$this->pubImageRepository->retrieveZoneAndImage());
  48.         $this->twig->addGlobal("marques"$this->marquesRepository->findAll());
  49.         $this->twig->addGlobal("modeles"$this->modelesRepository->findAll());
  50.     }
  51.     public static function getSubscribedEvents(): array
  52.     {
  53.         return [
  54.             KernelEvents::CONTROLLER => 'onKernelController',
  55.         ];
  56.     }
  57. }