<?php
namespace App\Subscribers;
use App\Entity\Test;
use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityPersistedEvent;
use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityUpdatedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Security;
class TestSubscriber implements EventSubscriberInterface
{
private $security;
public function __construct(Security $security)
{
$this->security = $security;
}
public static function getSubscribedEvents()
{
return [
BeforeEntityPersistedEvent::class => ['setUser'],
BeforeEntityUpdatedEvent::class => ['setUpdateTime'],
];
}
public function setUser(BeforeEntityPersistedEvent $e)
{
$entity = $e->getEntityInstance();
if ($entity instanceof Test) {
$entity->setUser($this->security->getUser());
$entity->setCreatedAt(new \DateTime());
}
}
public function setUpdateTime(BeforeEntityUpdatedEvent $e)
{
$entity = $e->getEntityInstance();
if ($entity instanceof Test) {
$entity->setUpdatedAt(new \DateTime());
}
}
}