<?php
declare(strict_types=1);
namespace App\EventListener;
use App\Entity\Popup\Popup;
use App\Entity\Popup\PopupImage;
use App\Files\Uploader\PopupUploader;
use Symfony\Component\EventDispatcher\GenericEvent;
final class PopupImageListener
{
private PopupUploader $popupUploader;
public function __construct(PopupUploader $popupUploader)
{
$this->popupUploader = $popupUploader;
}
public function uploadFile(GenericEvent $event)
{
/** @var Popup $popup */
$popup = $event->getSubject();
$files = $popup->getImages();
if (count($files) === 0) {
return;
}
/** @var PopupImage $file */
foreach ($files as $file) {
if ($file->getFile() === null) {
continue;
}
$pathFile = $this->popupUploader->upload($file->getFile());
$file->setPopup($popup);
$file->setPath($pathFile);
}
}
}