<?php
namespace App\Subscriber\Media;
use App\Event\Media\MemberMediaResizeEvent;
use App\Service\Media\MemberMediaService;
use App\Service\Media\StorageLayer;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Class MemberMediaResizeSubscriber.
*/
class MemberMediaResizeSubscriber implements EventSubscriberInterface
{
protected MemberMediaService $memberMediaService;
protected StorageLayer $storageLayer;
/**
* MemberMediaResizeSubscriber constructor.
*/
public function __construct(StorageLayer $storageLayer, MemberMediaService $mediaService)
{
$this->memberMediaService = $mediaService;
$this->storageLayer = $storageLayer;
}
public static function getSubscribedEvents(): array
{
return [
MemberMediaResizeEvent::class => [
['onResizeCreateLiipCacheFiles', 0],
['onResizeRecalculateImportHash', 1],
],
];
}
public function onResizeCreateLiipCacheFiles(MemberMediaResizeEvent $event)
{
$media = $event->getMemberMedia();
$this->memberMediaService->regenerateLiipCacheFiles($media, $event->getFilters());
}
/**
* @throws \Doctrine\ORM\ORMException
* @throws \Doctrine\ORM\OptimisticLockException
*/
public function onResizeRecalculateImportHash(MemberMediaResizeEvent $event)
{
$this->memberMediaService->recalculateImportHash($event->getMemberMedia());
}
}