src/EventSubscriber/MaximumNumProjectsReachedListener.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Exception\MaximumNumProjectsReachedException;
  4. use Symfony\Component\HttpClient\Exception\EventSourceException;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpFoundation\Session\Session;
  7. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  8. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  9. use Symfony\Component\Routing\Router;
  10. use Symfony\Component\Routing\RouterInterface;
  11. class MaximumNumProjectsReachedListener
  12. {
  13.     private RouterInterface $router;
  14.     private SessionInterface $session;
  15.     public function __construct(RouterInterface $routerSessionInterface $session)
  16.     {
  17.         $this->router $router;
  18.         $this->session $session;
  19.     }
  20.     public function onKernelException(ExceptionEvent $event)
  21.     {
  22.         $exception $event->getThrowable();
  23.         if (!$exception instanceof MaximumNumProjectsReachedException) {
  24.             return;
  25.         }
  26.         $this->session->getFlashBag()->add('error''Die maximal mögliche Anzahl von Projekten ist bereits erreicht.');
  27.         $response = new RedirectResponse($this->router->generate('app_district_application'));
  28.         $event->setResponse($response);
  29.     }
  30. }