src/EventSubscriber/TwigEventSubscriber.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  5. use App\Repository\SettingsRepository;
  6. use Twig\Environment;
  7. # see example here: https://symfony.com/doc/6.2/the-fast-track/en/12-event.html
  8. class TwigEventSubscriber implements EventSubscriberInterface
  9. {
  10.     
  11.     private $twig;
  12.     private $settingsRepository;
  13.     public function __construct(Environment $twigSettingsRepository $settingsRepository)
  14.     {
  15.         $this->twig $twig;
  16.         $this->settingsRepository $settingsRepository;
  17.     }
  18.     public function onKernelController(ControllerEvent $event)
  19.     {
  20.         $this->twig->addGlobal'websitetitle'$this->settingsRepository->findOneBy(['name' => 'websitetitle'])->getValue() );
  21.         $this->twig->addGlobal'navbarcolor'$this->settingsRepository->findOneBy(['name' => 'navbarcolor'])->getValue() );
  22.         $this->twig->addGlobal'favicon'$this->settingsRepository->findOneBy(['name' => 'favicon'])->getValue() );
  23.         $this->twig->addGlobal'logo'$this->settingsRepository->findOneBy(['name' => 'logo'])->getValue() );
  24.         $this->twig->addGlobal'downpaymentpercentage'$this->settingsRepository->findOneBy(['name' => 'downpaymentpercentage'])->getValue() );
  25.         $this->twig->addGlobal'finalpaymentpercentage'$this->settingsRepository->findOneBy(['name' => 'finalpaymentpercentage'])->getValue() );
  26.     }
  27.     
  28.     public static function getSubscribedEvents()
  29.     {
  30.         return [
  31.             'kernel.controller' => 'onKernelController',
  32.         ];
  33.     }
  34. }