src/EventSubscriber/TwigEventSubscriber.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Manager\BrandManager;
  4. use App\Manager\FormsManager;
  5. use App\Manager\InfoManager;
  6. use App\Manager\ServiceManager;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  9. use Twig\Environment;
  10. class TwigEventSubscriber implements EventSubscriberInterface
  11. {
  12.     private Environment $twig;
  13.     private InfoManager $infoManager;
  14.     private FormsManager $formsManager;
  15.     private BrandManager $brandManager;
  16.     private ServiceManager $serviceManager;
  17.     public function __construct(Environment $twigInfoManager $infoManagerFormsManager $formsManagerBrandManager $brandManagerServiceManager $serviceManager)
  18.     {
  19.         $this->twig $twig;
  20.         $this->infoManager $infoManager;
  21.         $this->formsManager $formsManager;
  22.         $this->brandManager $brandManager;
  23.         $this->serviceManager $serviceManager;
  24.     }
  25.     public function onControllerEvent(ControllerEvent $event)
  26.     {
  27.         $info $this->infoManager->find(1);
  28.         $forms $this->formsManager->find(1);
  29.         $menuBrands $this->brandManager->valid();
  30.         $menuServices $this->serviceManager->valid();
  31.         $this->twig->addGlobal('info'$info);
  32.         $this->twig->addGlobal('forms'$forms);
  33.         $this->twig->addGlobal('menu_brands'$menuBrands);
  34.         $this->twig->addGlobal('menu_services'$menuServices);
  35.         $this->twig->addGlobal('menu_active', []);
  36.     }
  37.     public static function getSubscribedEvents(): array
  38.     {
  39.         return [
  40.             ControllerEvent::class => 'onControllerEvent',
  41.         ];
  42.     }
  43. }