vendor/bitbag/mailtemplate-plugin/src/EventListener/TwigErrorEventListener.php line 26

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file was created by developers working at BitBag
  4.  * Do you need more information about us and what we do? Visit our https://bitbag.io website!
  5.  * We are hiring developers from all over the world. Join us and start your new, exciting adventure and become part of us: https://bitbag.io/career
  6.  */
  7. declare(strict_types=1);
  8. namespace BitBag\SyliusMailTemplatePlugin\EventListener;
  9. use BitBag\SyliusMailTemplatePlugin\Provider\CustomTwigErrorResponseProviderInterface;
  10. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  11. use Twig\Error\Error;
  12. class TwigErrorEventListener
  13. {
  14.     private CustomTwigErrorResponseProviderInterface $customResponseProvider;
  15.     public function __construct(CustomTwigErrorResponseProviderInterface $customResponseProvider)
  16.     {
  17.         $this->customResponseProvider $customResponseProvider;
  18.     }
  19.     public function onKernelException(ExceptionEvent $event): void
  20.     {
  21.         $error $event->getThrowable();
  22.         if (!$error instanceof Error) {
  23.             return;
  24.         }
  25.         $customTwigErrorResponse $this->customResponseProvider->provide($error);
  26.         if (null === $customTwigErrorResponse) {
  27.             return;
  28.         }
  29.         $event->setResponse($customTwigErrorResponse);
  30.     }
  31. }