<?php
namespace App\EventListener;
use App\Event\ValidationCodeEmailSend;
use App\RegisterBundle\Entity\Registration;
use DateTime;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ValidationCodeSubscriber implements EventSubscriberInterface
{
/**
* @var EntityManager
*/
private $em;
/**
* @param EntityManager $em
*/
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
public static function getSubscribedEvents(): array
{
return [
ValidationCodeEmailSend::NAME => [ 'onValidationCodeEmailSend' ],
];
}
public function onValidationCodeEmailSend(ValidationCodeEmailSend $event)
{
$registration = $event->getRegistration();
if ($registration instanceof Registration) {
$registration->setLastEmailSentAt(new DateTime());
$this->em->flush();
}
}
}