vendor/bitbag/cms-plugin/src/EventListener/PageImageUploadListener.php line 31

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file has been created by developers from BitBag.
  4.  * Feel free to contact us once you face any issues or want to start
  5.  * another great project.
  6.  * You can find more information about us on https://bitbag.shop and write us
  7.  * an email on mikolaj.krol@bitbag.pl.
  8.  */
  9. declare(strict_types=1);
  10. namespace BitBag\SyliusCmsPlugin\EventListener;
  11. use BitBag\SyliusCmsPlugin\Entity\PageInterface;
  12. use BitBag\SyliusCmsPlugin\Entity\PageTranslationInterface;
  13. use Sylius\Bundle\ResourceBundle\Event\ResourceControllerEvent;
  14. use Sylius\Component\Core\Uploader\ImageUploaderInterface;
  15. use Webmozart\Assert\Assert;
  16. final class PageImageUploadListener
  17. {
  18.     /** @var ImageUploaderInterface */
  19.     private $uploader;
  20.     public function __construct(ImageUploaderInterface $uploader)
  21.     {
  22.         $this->uploader $uploader;
  23.     }
  24.     public function uploadImage(ResourceControllerEvent $event): void
  25.     {
  26.         $page $event->getSubject();
  27.         Assert::isInstanceOf($pagePageInterface::class);
  28.         /** @var PageTranslationInterface $translation */
  29.         foreach ($page->getTranslations() as $translation) {
  30.             $image $translation->getImage();
  31.             if (null !== $image && true === $image->hasFile()) {
  32.                 $this->uploader->upload($image);
  33.             }
  34.         }
  35.     }
  36. }