<?php
namespace App\EventSubscriber;
use App\Entity\Project;
use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityPersistedEvent;
use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityUpdatedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ProjectCrudSubscriber implements EventSubscriberInterface
{
public function onBeforeEntityPersistedEvent(BeforeEntityPersistedEvent $event): void
{
/** @var Project $entity */
$entity = $event->getEntityInstance();
if (!$entity instanceof Project) {
return;
}
$this->setAutoHash($entity);
}
public function onBeforeEntityUpdateEvent(BeforeEntityUpdatedEvent $event): void
{
/** @var Project $entity */
$entity = $event->getEntityInstance();
if (!$entity instanceof Project) {
return;
}
$this->setAutoHash($entity);
}
public static function getSubscribedEvents(): array
{
return [
BeforeEntityPersistedEvent::class => 'onBeforeEntityPersistedEvent',
BeforeEntityUpdatedEvent::class => 'onBeforeEntityUpdateEvent',
];
}
public function setAutoHash(Project $entity): void
{
if (empty($entity->getHash())) {
$entity->setHash(null);
}
}
}