src/Subscriber/Media/MemberMediaUploadSubscriber.php line 42

Open in your IDE?
  1. <?php
  2. namespace App\Subscriber\Media;
  3. use App\Dictionary\MemberMediaFolder;
  4. use App\Event\Media\MemberMediaUploadEvent;
  5. use App\Service\Media\MemberMediaService;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. /**
  8.  * Class MemberMediaUploadSubscriber.
  9.  */
  10. class MemberMediaUploadSubscriber implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @var MemberMediaService
  14.      */
  15.     protected $service;
  16.     /**
  17.      * MemberMediaUploadSubscriber constructor.
  18.      */
  19.     public function __construct(MemberMediaService $service)
  20.     {
  21.         $this->service $service;
  22.     }
  23.     public static function getSubscribedEvents(): array
  24.     {
  25.         return [
  26.             MemberMediaUploadEvent::class => [
  27.                 ['onMediaUploadCreateFiles'0],
  28.                 ['onMediaUploadCopyToMemberFolder'1],
  29.             ],
  30.         ];
  31.     }
  32.     /**
  33.      * @throws \Doctrine\ORM\ORMException
  34.      * @throws \Doctrine\ORM\OptimisticLockException
  35.      */
  36.     public function onMediaUploadCreateFiles(MemberMediaUploadEvent $event)
  37.     {
  38.         $media $event->getMemberMedia();
  39.         $file $event->getFile();
  40.         $this->service->recalculateImportHash($media$file);
  41.         // move file
  42.         $storage $this->service->getStorage()->getMembermediaStorage();
  43.         $storage->write($media->getRelativePath(), file_get_contents($file->getRealPath()));
  44.         $filters MemberMediaFolder::getDefaultFiltersForFolderName($event->getFolder());
  45.         $this->service->regenerateLiipCacheFiles($media$filters);
  46.     }
  47.     /**
  48.      * @throws \Doctrine\ORM\ORMException
  49.      * @throws \Doctrine\ORM\OptimisticLockException
  50.      */
  51.     public function onMediaUploadCopyToMemberFolder(MemberMediaUploadEvent $event)
  52.     {
  53.         $media $event->getMemberMedia();
  54.         $member $media->getMember();
  55.         $this->service->copyToMemberFolder($media$member$event->getFolder());
  56.     }
  57. }