src/EventListener/FormAnswerCreatedListener.php line 40
<?phpnamespace App\EventListener;use App\Service\MailerService;use ApiPlatform\Core\EventListener\EventPriorities;use App\Entity\FormAnswer;use Doctrine\ORM\EntityManagerInterface;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpKernel\Event\ViewEvent;use Symfony\Component\HttpKernel\KernelEvents;use Symfony\Component\Validator\Validator\ValidatorInterface;use Symfony\Component\HttpKernel\Event\ControllerEvent;use Symfony\Component\HttpKernel\KernelInterface;class FormAnswerCreatedListener implements EventSubscriberInterface{private $mailerService;private EntityManagerInterface $entityManager;private $validator;private $kernel;public function __construct(MailerService $mailerService, EntityManagerInterface $entityManager, ValidatorInterface $validator, KernelInterface $kernel){$this->mailerService = $mailerService;$this->entityManager = $entityManager;$this->validator = $validator;$this->kernel = $kernel;}public static function getSubscribedEvents(){return [KernelEvents::VIEW => ['saveFormAnswer', EventPriorities::POST_WRITE],];}public function saveFormAnswer(ViewEvent $event){$mainFormAnswer = $event->getControllerResult();$method = $event->getRequest()->getMethod();if (!$mainFormAnswer instanceof FormAnswer) {return;}$answerFields = $mainFormAnswer->getFormAnswerFields();$content = "";foreach($answerFields as $answerField){$content .= $answerField->getFormField()->getLabel() . " - " . $answerField->getValue() . "\n";}$recipientEmail = $mainFormAnswer->getForm()->getSendMailAnswet();$meiles = explode(',',$recipientEmail);$subject = "Нова відповідь на форму - " . $mainFormAnswer->getForm()->getName();$media = $mainFormAnswer->getMedia();$attachmend = false;if(empty($mainFormAnswer->getStatus()) OR is_null($mainFormAnswer->getStatus())){if(count($media) > 0){$newMdiaArr = [];foreach($media as $val){$newMdiaArr[] = $this->kernel->getProjectDir() . "/public/media/" . date("Y") . "/" . date("m") . "/" . $val->filePath;}$attachmend = $newMdiaArr;}foreach($meiles as $meil){$this->mailerService->sendRegistrationEmail(trim($meil), $subject, $content, $attachmend);}$mainFormAnswer->setStatus('Нове');$this->entityManager->persist($mainFormAnswer );}$dataMails = $mainFormAnswer->getData();if($dataMails != null){foreach($dataMails as $k => $data){if(!empty($data['email']) AND !empty($data['title']) AND !empty( $data['content'] ) AND empty($data['send'])){// print_r($data); die;$this->mailerService->sendRegistrationEmail(trim($data['email']), $data['title'], $data['content']);$dataMails[$k]['send'] = true;}}$mainFormAnswer->setStatus('send_answer');$mainFormAnswer->setData($dataMails);$this->entityManager->persist($mainFormAnswer );$this->entityManager->flush();}}}