src/Entity/Picture.php line 14
<?phpnamespace App\Entity;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Validator\Constraints as Assert;use OlaSoft\Common;use App\Entity\OSFile;/*** @ORM\Entity(repositoryClass="App\Repository\PictureRepository")* @ORM\HasLifecycleCallbacks()*/class Picture extends OSFile{public function __construct(?string $path = null){parent::__construct($path);$this->hasThumbnail = true;$this->thumbnailDir = 'upload/thumbnails/';$this->validsMimetypes = ["image/png", "image/jpeg", "image/jpg", "image/svg+xml", "image/vnd.sealedmedia.softseal.jpg", "image/vnd.sealed.png"];if(!$path) $this->dir = 'upload/images/';}/*** @ORM\Column(name="target", type="string", length=255, nullable=true)* Assert\Image(* mimeTypes = "image/*",* mimeTypesMessage = "Veuillez choisir des images valides s'il vous plaît : .png, .jpeg, .jpg, .svg et .gif. Vérifiez également le MimeType."* )*/protected $target;/*** @ORM\Column(name="thumbnailDir", type="string", length=255, nullable=true)*/protected $thumbnailDir;/*** @ORM\Column(name="hasThumbnail", type="boolean", nullable=true)*/protected $hasThumbnail;private $width;private $height;public function setHasThumbnail(?bool $hasThumbnail = true){$this->hasThumbnail = $hasThumbnail;return $this;}public function getThumbnailDir(): ?string{return $this->thumbnailDir;}public function setThumbnailDir(?string $dir){$this->thumbnailDir = $dir;return $this;}protected function getThumbnailRootDir(): ?string{return $this->getRoot().$this->getThumbnailDir();}public function getThumbnail(){return $this->getThumbnailDir().'/'.$this->target;}public function getWidth(): ?int{return $this->file ? getimagesize($file)[0] : null;}public function getHeight(): ?int{return $this->file ? getimagesize($file)[1] : null;}/*** @ORM\PrePersist()*/public function persistFile(){parent::persistFile();}/*** @ORM\PostPersist()* @ORM\PostUpdate()*/public function postPersistFile(){if($this->file){if ($this->autoResize)Common::resizeImage($this->getRootFile());if($this->hasThumbnail){Common::thumbnailImage($this->getRootFile(),$this->getThumbnailRootDir());if($this->getPrevThumbnail() && $this->getThumbnail() != $this->getPrevThumbnail() && is_file($this->getPrevThumbnail()))unlink($this->getPrevThumbnail());}}}protected function getPrevThumbnail(){return $this->getThumbnailRootDir().'/'.$this->previousTarget;}/*** @ORM\PreRemove()*/public function deleteFile(){if(is_file($this->getRoot().$this->getThumbnail()))unlink($this->getRoot().$this->getThumbnail());parent::deleteFile();}public function getHasThumbnail(): ?bool{return $this->hasThumbnail;}public function setTarget($target){return parent::setTarget($target);}}