src/Doctrine/AddLogoListener.php line 51

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: antho
  5.  * Date: 21/08/2017
  6.  * Time: 12:02
  7.  */
  8. namespace App\Doctrine;
  9. use App\Entity\Client;
  10. use App\Service\ImageHelper\ImageResizerInterface;
  11. use Doctrine\ORM\Event\LifecycleEventArgs;
  12. use Symfony\Component\HttpKernel\Kernel;
  13. class AddLogoListener
  14. {
  15.     private $kernel;
  16.     /**
  17.      * @var ImageResizerInterface
  18.      */
  19.     private $imageResizer;
  20.     public function __construct(Kernel $kernelImageResizerInterface $imageResizer) {
  21.         $this->kernel $kernel;
  22.         $this->imageResizer $imageResizer;
  23.     }
  24.     public function prePersist(LifecycleEventArgs $args)
  25.     {
  26.         $entity $args->getEntity();
  27.         if(is_a($entity'\App\Entity\Logo')){
  28.             if($args->getObject()->getIdClient() != null){
  29.                 $em $args->getEntityManager();
  30.                 /** @var Client $client */
  31.                 $client $em->getRepository('App\Entity\Client')
  32.                     ->find($args->getObject()->getIdClient());
  33.                 $client->setLogo($args->getObject());
  34.                 $em->persist($client);
  35.                 $file =$this->kernel->getRootDir() . '/../public/logoClients/'.$args->getObject()->getUrl();
  36.                 $fileResized =$this->kernel->getRootDir() . '/../public/logoClients/resized/';
  37.                 if(!file_exists($file)) {
  38.                     file_put_contents($filebase64_decode($args->getObject()->getValue()));
  39.                 }
  40.                 $result $this->imageResizer->resizeImage($file,$fileResized,0,300);
  41.                 if( $result === false){
  42.                     $fileResized $fileResized '/' $args->getObject()->getUrl();
  43.                     if(!file_exists($fileResized)) {
  44.                         file_put_contents($fileResizedbase64_decode($args->getObject()->getValue()));
  45.                     }
  46.                 }
  47.             }
  48.         }
  49.     }
  50. }