src/EventListener/MaintenanceListener.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpKernel\Event\RequestEvent;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. use Twig\Environment;
  8. class MaintenanceListener implements EventSubscriberInterface
  9. {
  10.     private bool $maintenanceMode;
  11.     private Environment $engin;
  12.     public function __construct(bool $maintenanceModeEnvironment $engine)
  13.     {
  14.         $this->maintenanceMode $maintenanceMode;
  15.         $this->engin $engine;
  16.     }
  17.     public static function getSubscribedEvents(): array
  18.     {
  19.         return [
  20.             KernelEvents::REQUEST => 'onKernelRequest',
  21.         ];
  22.     }
  23.     public function onKernelRequest(RequestEvent $event)
  24.     {
  25.         //display a specific twig if maintenanceMode == true
  26.         if ($this->maintenanceMode) {
  27.             $html $this->engin->render('maintenance/maintenance.html.twig');
  28.             $event->setResponse(new Response($html503));
  29.         }
  30.         return;
  31.     }
  32. }