src/CmsBundle/Entity/SitemapImport.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\CmsBundle\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Validator\Constraints as Assert;
  5. /**
  6.  * @ORM\Table(
  7.  *     name="sitemap_import"
  8.  * )
  9.  * @ORM\Entity(repositoryClass="App\CmsBundle\Repository\SitemapImportRepository")
  10.  */
  11. class SitemapImport
  12. {
  13.     const SERVER_PATH_FOLDER '/tmp';
  14.     use IdTraitTimeStampedTrait;
  15.     /**
  16.      * @ORM\ManyToOne(targetEntity="App\CmsBundle\Entity\Site", inversedBy="sitemapImports")
  17.      * @ORM\JoinColumn(name="site_id", referencedColumnName="id", nullable=true)
  18.      */
  19.     private Site $site;
  20.     /**
  21.      * @ORM\Column(type="string", nullable=true)
  22.      */
  23.     private ?string $filename null;
  24.     /**
  25.      * @Assert\All({
  26.      *      @Assert\File(
  27.      *          mimeTypes={ "application/xml", "text/xml" }
  28.      *     )
  29.      * })
  30.      */
  31.     private array $files;
  32.     /**
  33.      * @ORM\Column(type="text", nullable=true)
  34.      */
  35.     private ?string $content null;
  36.     /**
  37.      * @return int|null
  38.      */
  39.     public function getId(): ?int
  40.     {
  41.         return $this->id;
  42.     }
  43.     /**
  44.      * @return ?string
  45.      */
  46.     public function getFilename(): ?string
  47.     {
  48.         return $this->filename;
  49.     }
  50.     /**
  51.      * @param ?string $filename
  52.      * @return void
  53.      */
  54.     public function setFilename(?string $filename): void
  55.     {
  56.         $this->filename $filename;
  57.     }
  58.     /**
  59.      * @return array
  60.      */
  61.     public function getFiles(): array
  62.     {
  63.         return $this->files;
  64.     }
  65.     /**
  66.      * @param array $files
  67.      * @return void
  68.      */
  69.     public function setFiles(array $files): void
  70.     {
  71.         $this->files $files;
  72.     }
  73.     /**
  74.      * @return void
  75.      */
  76.     public function upload(): void
  77.     {
  78.         foreach ($this->files as $file) {
  79.             $filename md5(uniqid()) . '.' $file->getClientOriginalExtension();
  80.             $file->move(self::SERVER_PATH_FOLDER$filename);
  81.             $this->addFile($filename);
  82.         }
  83.     }
  84.     /**
  85.      * @param string $file
  86.      * @return void
  87.      */
  88.     public function addFile(string $file): void
  89.     {
  90.         $this->files[] = $file;
  91.     }
  92.     /**
  93.      * @param Site $site
  94.      * @return $this
  95.      */
  96.     public function setSite(Site $site): self
  97.     {
  98.         $this->site $site;
  99.         return $this;
  100.     }
  101.     /**
  102.      * @return ?Site
  103.      */
  104.     public function getSite(): ?Site
  105.     {
  106.         return $this->site;
  107.     }
  108.     /**
  109.      * @param string $content
  110.      * @return $this
  111.      */
  112.     public function setContent(string $content): self
  113.     {
  114.         $this->content $content;
  115.         return $this;
  116.     }
  117.     /**
  118.      * @return ?string
  119.      */
  120.     public function getContent(): ?string
  121.     {
  122.         return $this->content;
  123.     }
  124. }