vendor/vich/uploader-bundle/src/EventListener/Doctrine/UploadListener.php line 43

Open in your IDE?
  1. <?php
  2. namespace Vich\UploaderBundle\EventListener\Doctrine;
  3. use Doctrine\Persistence\Event\LifecycleEventArgs;
  4. /**
  5.  * UploadListener.
  6.  *
  7.  * Handles file uploads.
  8.  *
  9.  * @author Kévin Gomez <contact@kevingomez.fr>
  10.  */
  11. class UploadListener extends BaseListener
  12. {
  13.     /**
  14.      * The events the listener is subscribed to.
  15.      *
  16.      * @return array The array of events
  17.      */
  18.     public function getSubscribedEvents(): array
  19.     {
  20.         return [
  21.             'prePersist',
  22.             'preUpdate',
  23.         ];
  24.     }
  25.     /**
  26.      * @param LifecycleEventArgs $event The event
  27.      *
  28.      * @throws \Vich\UploaderBundle\Exception\MappingNotFoundException
  29.      */
  30.     public function prePersist(LifecycleEventArgs $event): void
  31.     {
  32.         $object $event->getObject();
  33.         if (!$this->isUploadable($object)) {
  34.             return;
  35.         }
  36.         foreach ($this->getUploadableFields($object) as $field) {
  37.             $this->handler->upload($object$field);
  38.         }
  39.     }
  40.     /**
  41.      * @param LifecycleEventArgs $event The event
  42.      *
  43.      * @throws \Vich\UploaderBundle\Exception\MappingNotFoundException
  44.      */
  45.     public function preUpdate(LifecycleEventArgs $event): void
  46.     {
  47.         $object $event->getObject();
  48.         if (!$this->isUploadable($object)) {
  49.             return;
  50.         }
  51.         foreach ($this->getUploadableFields($object) as $field) {
  52.             $this->handler->upload($object$field);
  53.         }
  54.         $this->adapter->recomputeChangeSet($event);
  55.     }
  56. }