<?php
namespace App\CmsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Table(
* name="sitemap_import"
* )
* @ORM\Entity(repositoryClass="App\CmsBundle\Repository\SitemapImportRepository")
*/
class SitemapImport
{
const SERVER_PATH_FOLDER = '/tmp';
use IdTrait, TimeStampedTrait;
/**
* @ORM\ManyToOne(targetEntity="App\CmsBundle\Entity\Site", inversedBy="sitemapImports")
* @ORM\JoinColumn(name="site_id", referencedColumnName="id", nullable=true)
*/
private Site $site;
/**
* @ORM\Column(type="string", nullable=true)
*/
private ?string $filename = null;
/**
* @Assert\All({
* @Assert\File(
* mimeTypes={ "application/xml", "text/xml" }
* )
* })
*/
private array $files;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $content = null;
/**
* @return int|null
*/
public function getId(): ?int
{
return $this->id;
}
/**
* @return ?string
*/
public function getFilename(): ?string
{
return $this->filename;
}
/**
* @param ?string $filename
* @return void
*/
public function setFilename(?string $filename): void
{
$this->filename = $filename;
}
/**
* @return array
*/
public function getFiles(): array
{
return $this->files;
}
/**
* @param array $files
* @return void
*/
public function setFiles(array $files): void
{
$this->files = $files;
}
/**
* @return void
*/
public function upload(): void
{
foreach ($this->files as $file) {
$filename = md5(uniqid()) . '.' . $file->getClientOriginalExtension();
$file->move(self::SERVER_PATH_FOLDER, $filename);
$this->addFile($filename);
}
}
/**
* @param string $file
* @return void
*/
public function addFile(string $file): void
{
$this->files[] = $file;
}
/**
* @param Site $site
* @return $this
*/
public function setSite(Site $site): self
{
$this->site = $site;
return $this;
}
/**
* @return ?Site
*/
public function getSite(): ?Site
{
return $this->site;
}
/**
* @param string $content
* @return $this
*/
public function setContent(string $content): self
{
$this->content = $content;
return $this;
}
/**
* @return ?string
*/
public function getContent(): ?string
{
return $this->content;
}
}