src/EventSubscriber/User/UserNewEventSubscriber.php line 34

  1. <?php
  2. namespace App\EventSubscriber\User;
  3. use App\Event\User\UserNewEvent;
  4. use App\Repository\UserRepository;
  5. use App\Service\Parametro\ParametroService;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\Mailer\MailerInterface;
  8. use Symfony\Component\Mime\Email;
  9. class UserNewEventSubscriber implements EventSubscriberInterface
  10. {
  11.     private MailerInterface $mailer;
  12.     private UserRepository $userRepository;
  13.     private ParametroService $parametroService;
  14.     public function __construct(MailerInterface $mailer
  15.                                 UserRepository $userRepository,
  16.                                 ParametroService $parametroService)
  17.     {
  18.         $this->mailer $mailer;
  19.         $this->userRepository $userRepository;
  20.         $this->parametroService $parametroService;
  21.     }
  22.     public static function getSubscribedEvents()
  23.     {
  24.         return [
  25.             UserNewEvent::class => ['onUserCreated']
  26.         ];
  27.     }
  28.     public function onUserCreated(UserNewEvent $event):void {
  29.         $sendEmail $this->parametroService->getAvisoMailStatus();
  30.         if($sendEmail) {
  31.             $usuario $this->userRepository->findOneBy(['email' => $event->getUserEmail()]);
  32.             $emailTo $this->parametroService->getCorreoAvisoNuevoUsuario();
  33.             $email = (new Email())
  34.             ->from('avisos@cidon.es')
  35.             ->to($emailTo)
  36.             //->cc('cc@example.com')
  37.             //->bcc('bcc@example.com')
  38.             //->replyTo('fabien@example.com')
  39.             //->priority(Email::PRIORITY_HIGH)
  40.             ->subject('Nueva alta de usuario')
  41.             ->text('Se ha dado de alta un nuevo usuario '$usuario->getEmail());
  42.             // ->html('<p>Hola <b>Caracola</b></p>');
  43.             
  44.             $this->mailer->send($email);        
  45.         }
  46.     }
  47. }