src/EventSubscriber/Timetable/TimetableSubscriber.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber\Timetable;
  3. use App\Event\Timetable\TimetableUpdatedEvent;
  4. use App\EventSubscriber\AbstractEmailSubscriber;
  5. use App\Manager\Mailer;
  6. use App\Manager\MailTypeInterface;
  7. use Symfony\Contracts\Translation\TranslatorInterface;
  8. use Twig\Environment;
  9. class TimetableSubscriber extends AbstractEmailSubscriber
  10. {
  11.     protected $financialServiceEmail;
  12.     public function __construct(
  13.         Mailer $mailer,
  14.         Environment $templating,
  15.         TranslatorInterface $translator,
  16.         string $financialServiceEmail
  17.     ) {
  18.         parent::__construct($mailer$templating$translator);
  19.         $this->financialServiceEmail $financialServiceEmail;
  20.     }
  21.     public static function getSubscribedEvents(): array
  22.     {
  23.         return [
  24.             TimetableUpdatedEvent::class => 'onTimetableUpdated',
  25.         ];
  26.     }
  27.     public function onTimetableUpdated(TimetableUpdatedEvent $event): void
  28.     {
  29.         $deadlines $event->getDeadlines();
  30.         $user $event->getUser();
  31.         $subject $this->transEmail('timetable.updated.subject');
  32.         $message $this->templating->render('email/timetable/updated.html.twig', [
  33.             'customer'  => $user,
  34.             'deadlines' => $deadlines,
  35.         ]);
  36.         $this->mailer->sendMail(
  37.             [$user->getEmail(), $this->financialServiceEmail],
  38.             $subject,
  39.             $message,
  40.             MailTypeInterface::TIMETABLE_UPDATED
  41.         );
  42.     }
  43. }