src/Listener/EasyAdminListener.php line 32

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Listener;
  4. use EasyCorp\Bundle\EasyAdminBundle\Event\AfterEntityDeletedEvent;
  5. use EasyCorp\Bundle\EasyAdminBundle\Event\AfterEntityPersistedEvent;
  6. use EasyCorp\Bundle\EasyAdminBundle\Event\AfterEntityUpdatedEvent;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  9. use Symfony\Component\Translation\TranslatableMessage;
  10. final class EasyAdminListener implements EventSubscriberInterface {
  11.     private $session;
  12.     public function __construct(SessionInterface $session) {
  13.         
  14.         $this->session $session;
  15.         
  16.     }
  17.     public static function getSubscribedEvents(): array {
  18.         return [
  19.             AfterEntityPersistedEvent::class => ['flashMessageAfterPersist'],
  20.             AfterEntityUpdatedEvent::class => ['flashMessageAfterUpdate'],
  21.             AfterEntityDeletedEvent::class => ['flashMessageAfterDelete'],
  22.         ];
  23.     }
  24.     public function flashMessageAfterPersist(AfterEntityPersistedEvent $event): void {
  25.         $this->session->getFlashBag()->add('success', new TranslatableMessage('content_admin.flash_message.create', [
  26.                     '%name%' => (string) $event->getEntityInstance(),
  27.                         ], 'admin'));
  28.     }
  29.     public function flashMessageAfterUpdate(AfterEntityUpdatedEvent $event): void {
  30.         $this->session->getFlashBag()->add('warning', new TranslatableMessage('content_admin.flash_message.update', [
  31.                     '%name%' => (string) $event->getEntityInstance(),
  32.                         ], 'admin'));
  33.     }
  34.     public function flashMessageAfterDelete(AfterEntityDeletedEvent $event): void {
  35.         $this->session->getFlashBag()->add('danger', new TranslatableMessage('content_admin.flash_message.delete', [
  36.                     '%name%' => (string) $event->getEntityInstance(),
  37.                         ], 'admin'));
  38.     }
  39. }