src/EventSubscriber/BanniereSubscriber.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use ApiPlatform\Core\Api\IriConverterInterface;
  4. use ApiPlatform\Core\EventListener\EventPriorities;
  5. use App\Entity\Banniere;
  6. use App\Entity\Client;
  7. use App\Entity\Colis;
  8. use App\Exception\EntiteNotFoundException;
  9. use App\Service\FileUploader;
  10. use App\Service\Utils;
  11. use Doctrine\Persistence\ManagerRegistry;
  12. use Symfony\Component\DependencyInjection\ContainerBuilder;
  13. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. use Symfony\Component\Filesystem\Filesystem;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Symfony\Component\HttpKernel\Event\ViewEvent;
  18. use Symfony\Component\HttpKernel\KernelEvents;
  19. use Vich\UploaderBundle\Storage\StorageInterface;
  20. class BanniereSubscriber extends BaseEventSubscriber
  21. {
  22.     public static function getSubscribedEvents()
  23.     {
  24.         return [
  25.             KernelEvents::VIEW => [
  26.                 ['processBanniereDelete'EventPriorities::PRE_WRITE],
  27.             ],
  28.         ];
  29.     }
  30.     public function processBanniereDelete(ViewEvent $event){
  31.         $banniere $event->getControllerResult();
  32.         //die($banniere->getFilename());
  33.         $method $event->getRequest()->getMethod();
  34.         if (!$banniere instanceof Banniere || Request::METHOD_DELETE !== $method) {
  35.             return ;
  36.         }
  37.         $fs = new Filesystem();
  38.         try {
  39.             if($banniere->getFilename()){
  40.                 $fs->remove($this->container->get('banniere_directory').'/'.$banniere->getFilename());
  41.             }
  42.         } catch (\Exception $e){
  43.             throw new EntiteNotFoundException($e->getMessage());
  44.         }
  45.     }
  46. }