src/EventListener/ValidationCodeSubscriber.php line 34

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Event\ValidationCodeEmailSend;
  4. use App\RegisterBundle\Entity\Registration;
  5. use DateTime;
  6. use Doctrine\ORM\EntityManager;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. class ValidationCodeSubscriber implements EventSubscriberInterface
  10. {
  11.     /**
  12.      * @var EntityManager
  13.      */
  14.     private $em;
  15.     /**
  16.      * @param EntityManager $em
  17.      */
  18.     public function __construct(EntityManagerInterface $em)
  19.     {
  20.         $this->em $em;
  21.     }
  22.     public static function getSubscribedEvents(): array
  23.     {
  24.         return [
  25.             ValidationCodeEmailSend::NAME                  => [ 'onValidationCodeEmailSend' ],
  26.         ];
  27.     }
  28.     public function onValidationCodeEmailSend(ValidationCodeEmailSend $event)
  29.     {
  30.         $registration $event->getRegistration();
  31.         if ($registration instanceof Registration) {
  32.             $registration->setLastEmailSentAt(new DateTime());
  33.             $this->em->flush();
  34.         }
  35.     }
  36. }