src/EventListener/CleanFlashMessageListener.php line 18

Open in your IDE?
  1. <?php
  2. // src/EventListener/CleanFlashMessageListener.php
  3. namespace App\EventListener;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  6. class CleanFlashMessageListener
  7. {
  8.     private SessionInterface $session;
  9.     public function __construct(SessionInterface $session) {
  10.         $this->session $session;
  11.     }
  12.     public function onKernelRequest(RequestEvent $event): void
  13.     {
  14.         if (!$event->isMainRequest()) {
  15.             return;
  16.         }
  17.         $flashBag $this->session->getFlashBag();
  18.         // get message without consume
  19.         $successMessages $flashBag->peek('success');
  20.         if (!$successMessages) {
  21.             return;
  22.         }
  23.         // delete fos_user_success message
  24.         $filtered array_filter($successMessages, fn($msg) => $msg !== "L'utilisateur a été créé avec succès.");
  25.         if (count($filtered) !== count($successMessages)) {
  26.             $flashBag->get('success'); // consume all success messages for delete
  27.             foreach ($filtered as $msg) {
  28.                 $flashBag->add('success'$msg); // re inject others messages
  29.             }
  30.         }
  31.     }
  32. }