Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

34 lines
1.0KB

  1. <?php
  2. namespace Lc\SovBundle\EventListener;
  3. use Symfony\Component\HttpFoundation\RequestStack;
  4. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  5. use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
  6. class ExceptionListener
  7. {
  8. public function __construct(
  9. RequestStack $requestStack
  10. ) {
  11. $this->requestStack = $requestStack;
  12. }
  13. public function onKernelException(ExceptionEvent $event)
  14. {
  15. // You get the exception object from the received event
  16. $exception = $event->getThrowable();
  17. // On détecte une erreur interne (500), on remove les sessions qui servent de filtre dans l'admin
  18. if ($exception instanceof HttpExceptionInterface != true) {
  19. if (!headers_sent()) {
  20. foreach ($this->requestStack->getSession()->all() as $key => $s) {
  21. if (str_contains($key, "_filter")) {
  22. $this->requestStack->getSession()->remove($key);
  23. }
  24. }
  25. }
  26. }
  27. }
  28. }