src/EventListener/MaintenanceListener.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Exception;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  6. use Twig\Environment as Twig;
  7. class MaintenanceListener
  8. {
  9.     /** @var bool */
  10.     private $isMaintenance;
  11.     /** @var string */
  12.     private $environment;
  13.     private $twig;
  14.     /**
  15.      * @param bool $isMaintenance
  16.      * @param string $environment
  17.      * @param Twig $twig
  18.      */
  19.     public function __construct(bool $isMaintenancestring $environmentTwig $twig)
  20.     {
  21.         $this->isMaintenance $isMaintenance;
  22.         $this->environment $environment;
  23.         $this->twig $twig;
  24.     }
  25.     /**
  26.      * @param GetResponseEvent $event
  27.      * @throws Exception
  28.      */
  29.     public function onKernelRequest(GetResponseEvent $event)
  30.     {
  31.         if ($this->isMaintenance && !in_array($this->environment, ['dev'])) {
  32.             $template $this->twig->render('maintenance/index.html.twig');
  33.             $event->setResponse(new Response($template503));
  34.             $event->stopPropagation();
  35.         }
  36.     }
  37. }