src/EventSubscriber/InvalidUploadedFileExceptionSubscriber.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Exception\InvalidUploadedFileException;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. class InvalidUploadedFileExceptionSubscriber implements EventSubscriberInterface
  9. {
  10.     public function onKernelException(ExceptionEvent $event): void
  11.     {
  12.         $throwable $event->getThrowable();
  13.         if (!$throwable instanceof InvalidUploadedFileException) {
  14.             return;
  15.         }
  16.         $request $event->getRequest();
  17.         if ($request->hasSession()) {
  18.             $request->getSession()->getFlashBag()->add('error'$throwable->getMessage());
  19.         }
  20.         $referer $request->headers->get('referer');
  21.         $event->setResponse(new RedirectResponse($referer ?: '/'));
  22.     }
  23.     public static function getSubscribedEvents(): array
  24.     {
  25.         return [
  26.             KernelEvents::EXCEPTION => ['onKernelException'0],
  27.         ];
  28.     }
  29. }