src/FMT/Domain/Listener/CampaignListener.php line 35

Open in your IDE?
  1. <?php
  2. namespace FMT\Domain\Listener;
  3. use FMT\Data\Entity\Campaign;
  4. use FMT\Domain\Event\CampaignEvent;
  5. use FMT\Infrastructure\Helper\NotificationHelper;
  6. use Twig\Environment;
  7. /**
  8.  * Class CampaignListener
  9.  * @package FMT\Application\Listener
  10.  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  11.  * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  12.  */
  13. class CampaignListener
  14. {
  15.     /**
  16.      * @var Environment
  17.      */
  18.     private $parser;
  19.     /**
  20.      * @param Environment $engine
  21.      * @required
  22.      */
  23.     public function setEngine(Environment $engine)
  24.     {
  25.         $this->parser $engine;
  26.     }
  27.     /**
  28.      * @param CampaignEvent $event
  29.      */
  30.     public function onCampaignStarted(CampaignEvent $event)
  31.     {
  32.         /** @var Campaign $campaign */
  33.         $campaign $event->getCampaign();
  34.         $student $campaign->getUser();
  35.         $contacts $campaign->getContacts();
  36.         foreach ($contacts as $campaignContact) {
  37.             $donor $campaignContact->getContact()->getDonor();
  38.             $message $this->parser->render(
  39.                 '@Public/emails/campaign_notification.email.twig',
  40.                 compact('student''donor''campaign')
  41.             );
  42.             NotificationHelper::submitFromTemplate($message$donor->getProfile()->getEmail());
  43.         }
  44.     }
  45. }