partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

FileRemovalListener.php (1373B)


      1 <?php
      2 
      3 namespace PartKeepr\UploadedFileBundle\EventListener;
      4 
      5 use Doctrine\Common\Annotations\Reader;
      6 use Doctrine\ORM\Event\OnFlushEventArgs;
      7 use PartKeepr\ImageBundle\Services\ImageService;
      8 use PartKeepr\UploadedFileBundle\Entity\UploadedFile;
      9 use PartKeepr\UploadedFileBundle\Services\UploadedFileService;
     10 use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
     11 
     12 class FileRemovalListener
     13 {
     14     /**
     15      * @var UploadedFileService
     16      */
     17     private $uploadedFileService;
     18 
     19     /**
     20      * @var ImageService
     21      */
     22     private $imageService;
     23 
     24     /**
     25      * @var Reader
     26      */
     27     private $reader;
     28 
     29     /**
     30      * @var PropertyAccessorInterface
     31      */
     32     private $propertyAccessor;
     33 
     34     public function __construct(
     35         UploadedFileService $uploadedFileService,
     36         Reader $reader,
     37         PropertyAccessorInterface $propertyAccessor
     38     ) {
     39         $this->uploadedFileService = $uploadedFileService;
     40         $this->reader = $reader;
     41         $this->propertyAccessor = $propertyAccessor;
     42     }
     43 
     44     public function onFlush(OnFlushEventArgs $eventArgs)
     45     {
     46         $em = $eventArgs->getEntityManager();
     47         $uow = $em->getUnitOfWork();
     48         foreach ($uow->getScheduledEntityDeletions() as $entity) {
     49             if ($entity instanceof UploadedFile) {
     50                 $this->uploadedFileService->delete($entity);
     51             }
     52         }
     53     }
     54 }