src/EventSubscriber/TwigEventSubscriber.php line 47

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\Department;
  4. use App\Entity\Establishment;
  5. use App\Entity\Model;
  6. use App\Manager\DepartmentManager;
  7. use App\Manager\EstablishmentManager;
  8. use App\Manager\FormsManager;
  9. use App\Manager\InfoManager;
  10. use App\Manager\ModelManager;
  11. use App\Manager\ServiceManager;
  12. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  13. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  14. use Twig\Environment;
  15. class TwigEventSubscriber implements EventSubscriberInterface
  16. {
  17.     private Environment $twig;
  18.     private InfoManager $infoManager;
  19.     private FormsManager $formsManager;
  20.     private EstablishmentManager $establishmentManager;
  21.     private DepartmentManager $departmentManager;
  22.     private ModelManager $modelManager;
  23.     private ServiceManager $serviceManager;
  24.     public function __construct(
  25.         Environment $twig,
  26.         InfoManager $infoManager,
  27.         FormsManager $formsManager,
  28.         DepartmentManager $departmentManager,
  29.         EstablishmentManager $establishmentManager,
  30.         ModelManager $modelManager,
  31.         ServiceManager $serviceManager
  32.     )
  33.     {
  34.         $this->twig $twig;
  35.         $this->infoManager $infoManager;
  36.         $this->formsManager $formsManager;
  37.         $this->departmentManager $departmentManager;
  38.         $this->establishmentManager $establishmentManager;
  39.         $this->modelManager $modelManager;
  40.         $this->serviceManager $serviceManager;
  41.     }
  42.     public function onControllerEvent(ControllerEvent $event)
  43.     {
  44.         $info $this->infoManager->find(1);
  45.         $forms $this->formsManager->find(1);
  46.         $departments $this->departmentManager->all();
  47.         $departments array_map(function (Department $department) {
  48.             return $department->toArray();
  49.         }, $departments);
  50.         $establishments $this->establishmentManager->showInServiceForm();
  51.         $establishments array_map(function (Establishment $establishment) {
  52.             return $establishment->toArray();
  53.         }, $establishments);
  54.         $models $this->modelManager->valid();
  55.         $models array_map(function (Model $model) {
  56.             return $model->toArray();
  57.         }, $models);
  58.         $services $this->serviceManager->inHeader();
  59.         $this->twig->addGlobal('info'$info);
  60.         $this->twig->addGlobal('forms'$forms);
  61.         $this->twig->addGlobal('departmentsArray'$departments);
  62.         $this->twig->addGlobal('establishmentsArray'$establishments);
  63.         $this->twig->addGlobal('modelsArray'$models);
  64.         $this->twig->addGlobal('headerServices'$services);
  65.         $this->twig->addGlobal('menu_active', []);
  66.     }
  67.     public static function getSubscribedEvents(): array
  68.     {
  69.         return [
  70.             ControllerEvent::class => 'onControllerEvent',
  71.         ];
  72.     }
  73. }