src/EventSubscriber/ImageDeleteSubscriber.php line 31

  1. <?php
  2. namespace App\EventSubscriber;
  3. use Psr\Log\LoggerInterface;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpKernel\Event\ViewEvent;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. use ApiPlatform\Symfony\EventListener\EventPriorities;
  8. use App\Service\ImageManipulator;
  9. class ImageDeleteSubscriber implements EventSubscriberInterface
  10. {
  11.     private $logger;
  12.     private $imageManipulator;
  13.     public function __construct(LoggerInterface $loggerImageManipulator $imageManipulator)
  14.     {
  15.         $this->logger $logger;
  16.         $this->imageManipulator $imageManipulator;
  17.     }
  18.     public static function getSubscribedEvents()
  19.     {
  20.         return [
  21.             KernelEvents::VIEW => ['processImageDelete'EventPriorities::PRE_WRITE],
  22.         ];
  23.     }
  24.     public function processImageDelete(ViewEvent $event)
  25.     {
  26.         $request    $event->getRequest();
  27.         $imagen     $event->getControllerResult();
  28.         $method     $event->getRequest()->getMethod();
  29.         if(!$imagen instanceof Imagen || $method !== 'DELETE')
  30.         {
  31.             return;
  32.         }
  33.         $thumbnails $imagen->getThumbnails();
  34.         $this->imageManipulator->deleteOriginalImageFromApi($thumbnails['original']['rute']);
  35.     }
  36. }