src/Subscriber/Media/MemberMediaDeletedSubscriber.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\Subscriber\Media;
  3. use App\Event\Media\MemberMediaDeletedEvent;
  4. use App\Service\Media\MemberMediaService;
  5. use App\Service\Media\StorageLayer;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class MemberMediaDeletedSubscriber implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var StorageLayer
  11.      */
  12.     protected $storageLayer;
  13.     /**
  14.      * MemberMediaDeletedSubscriber constructor.
  15.      */
  16.     public function __construct(StorageLayer $storageLayer)
  17.     {
  18.         $this->storageLayer $storageLayer;
  19.     }
  20.     public static function getSubscribedEvents(): array
  21.     {
  22.         return [
  23.             MemberMediaDeletedEvent::class => [
  24.                 ['deleteMemberMediaFiles'0],
  25.             ],
  26.         ];
  27.     }
  28.     /**
  29.      * @throws \League\Flysystem\FileNotFoundException
  30.      */
  31.     public function deleteMemberMediaFiles(MemberMediaDeletedEvent $event)
  32.     {
  33.         if ($event->isSoftDelete()) {
  34.             return;
  35.         }
  36.         $media $event->getMemberMedia();
  37.         $this->storageLayer->deleteMemberMediaFile($media);
  38.         foreach (MemberMediaService::PROFILE_IMAGE_FILTERS as $filter) {
  39.             $this->storageLayer->deleteMemberMediaCachePath($media$filter);
  40.         }
  41.     }
  42. }