<?php
namespace App\EventSubscriber;
use App\Repository\SettingRepository;
use App\Repository\UserRepository;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ControllerEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Twig\Environment;
class TwigGlobalSubscriber implements EventSubscriberInterface
{
private UserRepository $userRepository;
private Environment $twig;
private SettingRepository $settingRepository;
public function __construct(UserRepository $userRepository, SettingRepository $settingRepository, Environment $twig)
{
$this->userRepository = $userRepository;
$this->settingRepository = $settingRepository;
$this->twig = $twig;
}
public static function getSubscribedEvents(): array
{
return [
KernelEvents::CONTROLLER => 'onKernelController',
];
}
public function onKernelController(ControllerEvent $event): void
{
$setting = $this->settingRepository->find(1);
$this->twig->addGlobal('setting', $setting);
}
}