<?php
namespace App\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use EasyCorp\Bundle\EasyAdminBundle\Event\{AfterEntityPersistedEvent, AfterEntityUpdatedEvent, AfterEntityDeletedEvent};
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use App\Entity\Deposit;
class EasyAdminSubscriber implements EventSubscriberInterface
{
private $session;
private $translator;
public function __construct(SessionInterface $session, TranslatorInterface $translator)
{
$this->session = $session;
$this->translator = $translator;
}
public static function getSubscribedEvents()
{
return [
AfterEntityPersistedEvent::class => 'onAfterEntityPersistedEvent',
AfterEntityUpdatedEvent::class => 'onAfterUpdatedPersistedEvent',
AfterEntityDeletedEvent::class => 'onAfterDeletedPersistedEvent'
];
}
public function onAfterEntityPersistedEvent(AfterEntityPersistedEvent $event)
{
$this->session->getFlashBag()->add('success', $this->translator->trans('crud.success.new'));
$entity = $event->getEntityInstance();
if( $entity instanceof Deposit )
{
$this->session->getFlashBag()->add('info', $this->translator->trans('crud.success.deposit.info'));
}
}
public function onAfterUpdatedPersistedEvent(AfterEntityUpdatedEvent $event)
{
$this->session->getFlashBag()->add('success', $this->translator->trans('crud.success.edit'));
}
public function onAfterDeletedPersistedEvent(AfterEntityDeletedEvent $event)
{
$this->session->getFlashBag()->add('success', $this->translator->trans('crud.success.delete'));
}
}