src/Event/ExceptionListener.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Event;
  3. use App\Kernel;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  7. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  8. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  9. use Twig\Environment;
  10. class ExceptionListener
  11. {
  12.     private  $twig;
  13.     private $request;
  14.     public function __construct(
  15. Environment $environment
  16.     )
  17.     {
  18.        $this->twig=$environment;
  19.     }
  20.     public  function onKernelException(ExceptionEvent $event):void{
  21.         $exception=$event->getThrowable();
  22.         if(!$exception instanceof NotFoundHttpException){
  23.             return;
  24.         }
  25.         $content=$this->twig->render('exception/not_found.html.twig',[
  26.             'companyName' =>"Loger",
  27.         ]);
  28.         $event->setResponse((new Response())->setContent($content));
  29.     }
  30.     public function onKernelResponse(ResponseEvent $event)
  31.     {
  32.         if (!$event->getKernel()->isDebug()) {
  33.             return;
  34.         }
  35.         $request $event->getRequest();
  36.         if (!$request->isXmlHttpRequest()) {
  37.             return;
  38.         }
  39.         $response $event->getResponse();
  40.         $response->headers->set('Symfony-Debug-Toolbar-Replace'1);
  41.     }
  42.     public function getRequest()
  43.     {
  44.         if ($this->kernel->getContainer()->has('request')) {
  45.             $request $this->kernel->getContainer()->get('request');
  46.         } else {
  47.             $request Request::createFromGlobals();
  48.         }
  49.         return $request;
  50.     }
  51. }