src/EventListener/RegistrationListener.php line 71

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use FOS\UserBundle\Event\FilterUserResponseEvent;
  4. use FOS\UserBundle\Event\FormEvent;
  5. use FOS\UserBundle\FOSUserEvents;
  6. use FOS\UserBundle\Mailer\Mailer;
  7. use FOS\UserBundle\Mailer\TwigSwiftMailer;
  8. use FOS\UserBundle\Model\UserManager;
  9. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. use Symfony\Component\HttpFoundation\RedirectResponse;
  12. use Symfony\Component\Routing\RouterInterface;
  13. use Swift_Mailer;
  14. use Symfony\Component\Mailer\MailerInterface;
  15. use Symfony\Component\Mime\Email;
  16. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  17. use Twig\Environment;
  18. use App\Service\MailerService;
  19. class RegistrationListener
  20. {
  21.     /**
  22.      * @var EventDispatcherInterface
  23.      */
  24.     private $dispatcher;
  25.     /**
  26.      * @var UserManager
  27.      */
  28.     private $userManager;
  29.     private $mailerService;
  30.     /**
  31.      * @var RouterInterface
  32.      */
  33.     private $router;
  34.     private $twig;
  35.     public function __construct(UserManager $userManagerMailerService $mailerServiceRouterInterface $router)
  36.     {
  37.         $this->userManager $userManager;
  38.         $this->router $router;
  39.         $this->mailerService $mailerService;
  40.     }
  41.     /**
  42.      * @param FilterUserResponseEvent $event
  43.      * @return null|\Symfony\Component\HttpFoundation\Response
  44.      */
  45.     public function onRegistrationComplete(FilterUserResponseEvent $event)
  46.     {
  47.         $user $event->getUser();
  48.         // $this->mailer->sendResettingEmailMessage($user);
  49.         $this->mailerService->sendResettingEmailMessage($user);
  50.         $user->setPasswordRequestedAt(new \DateTime());
  51.         $this->userManager->updateUser($user);
  52.     }
  53.     /**
  54.      * @param FormEvent $event
  55.      */
  56.     public function redirect(FormEvent $event)
  57.     {
  58.         $response = new RedirectResponse($this->router->generate('app.home'));
  59.         $event->setResponse($response);
  60.     }
  61. }