src/EventListener/UserCreatedListener.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Service\MailerService;
  4. use ApiPlatform\Core\EventListener\EventPriorities;
  5. use App\Entity\User;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpKernel\Event\ViewEvent;
  9. use Symfony\Component\HttpKernel\KernelEvents;
  10. // use App\Security\EmailVerifier;
  11. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  12. use Symfony\Component\Mime\Address;
  13. class UserCreatedListener implements EventSubscriberInterface
  14. {
  15.     private $mailerService;
  16.     // private EmailVerifier $emailVerifier;
  17.     public function __construct(MailerService $mailerService/*, EmailVerifier $emailVerifier*/)
  18.     {
  19.         $this->mailerService $mailerService;
  20.         // $this->emailVerifier = $emailVerifier;
  21.     }
  22.     public static function getSubscribedEvents()
  23.     {
  24.         return [
  25.             KernelEvents::VIEW => ['sendRegistrationEmail'EventPriorities::POST_WRITE],
  26.         ];
  27.     }
  28.     public function sendRegistrationEmail(ViewEvent $event)
  29.     {
  30.         $user $event->getControllerResult();
  31.         $method $event->getRequest()->getMethod();
  32.         if (!$user instanceof User || Request::METHOD_POST !== $method) {
  33.             return;
  34.         }
  35.         // $this->emailVerifier->sendEmailConfirmation('app_verify_email', $user,
  36.         // (new TemplatedEmail())
  37.         //     ->from(new Address('innetiad6@gmail.com', 'AcmeMailBot'))
  38.         //     ->to($user->getEmail())
  39.         //     ->subject('Please Confirm your Email')
  40.         //     ->htmlTemplate('registration/confirmation_email.html.twig')
  41.         // );
  42.         // $userEmail = $user->getEmail(); // Отримати email з вашого об'єкта користувача
  43.         // $subject = 'Реєстрація пройшла успішно';
  44.         // $body = 'Вітаємо, ви були успішно зареєстровані! Ваш логін: ' . $user->getUsername();
  45.         // $this->mailerService->sendRegistrationEmail($userEmail, $subject, $body);
  46.     }
  47. }