src/EventListener/PopupImageListener.php line 21

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\EventListener;
  4. use App\Entity\Popup\Popup;
  5. use App\Entity\Popup\PopupImage;
  6. use App\Files\Uploader\PopupUploader;
  7. use Symfony\Component\EventDispatcher\GenericEvent;
  8. final class PopupImageListener
  9. {
  10.     private PopupUploader $popupUploader;
  11.     public function __construct(PopupUploader $popupUploader)
  12.     {
  13.         $this->popupUploader $popupUploader;
  14.     }
  15.     public function uploadFile(GenericEvent $event)
  16.     {
  17.         /** @var Popup $popup */
  18.         $popup $event->getSubject();
  19.         $files $popup->getImages();
  20.         if (count($files) === 0) {
  21.             return;
  22.         }
  23.         /** @var PopupImage $file */
  24.         foreach ($files as $file) {
  25.             if ($file->getFile() === null) {
  26.                 continue;
  27.             }
  28.             $pathFile $this->popupUploader->upload($file->getFile());
  29.             $file->setPopup($popup);
  30.             $file->setPath($pathFile);
  31.         }
  32.     }
  33. }