src/Entity/NewsArticle.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\NewsArticleRepository;
  4. use DateTime;
  5. use DateTimeInterface;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8.  * @ORM\Entity(repositoryClass=NewsArticleRepository::class)
  9.  * @ORM\HasLifecycleCallbacks()
  10.  */
  11. class NewsArticle
  12. {
  13.     public const IMAGE_PREVIEW_LARGE_DIR 'large';
  14.     public const IMAGE_PREVIEW_SMALL_DIR 'small';
  15.     /**
  16.      * @ORM\Column(type="integer", options={"unsigned":true})
  17.      * @ORM\Id
  18.      * @ORM\GeneratedValue(strategy="IDENTITY")
  19.      */
  20.     private ?int $id;
  21.     /**
  22.      * @ORM\Column(type="text")
  23.      */
  24.     private ?string $content '';
  25.     /**
  26.      * @ORM\Column(type="boolean")
  27.      */
  28.     private bool $archived false;
  29.     /**
  30.      * @ORM\Column(type="datetime")
  31.      */
  32.     private ?DateTimeInterface $datePosted;
  33.     /**
  34.      * @ORM\Column(type="string", length=255, nullable=true)
  35.      */
  36.     private ?string $imageFilename null;
  37.     /**
  38.      * @ORM\Column(type="string", length=255, nullable=true)
  39.      */
  40.     private ?string $thumbnailFilename null;
  41.     /**
  42.      * @ORM\Column(type="string", length=127)
  43.      */
  44.     private ?string $title '';
  45.     /**
  46.      * @ORM\Column(type="datetime")
  47.      */
  48.     private ?DateTimeInterface $dateCreated;
  49.     /**
  50.      * @ORM\Column(type="datetime", nullable=true)
  51.      */
  52.     private ?DateTimeInterface $dateModified;
  53.     /**
  54.      * @ORM\Column(type="boolean")
  55.      */
  56.     private bool $published;
  57.     /**
  58.      * @ORM\PrePersist()
  59.      */
  60.     public function prePersist(): void
  61.     {
  62.         $this->setDateCreated(new DateTime());
  63.     }
  64.     /**
  65.      * @ORM\PreUpdate()
  66.      */
  67.     public function preUpdate(): void
  68.     {
  69.         $this->setDateModified(new DateTime());
  70.     }
  71.     public function getContent(): ?string
  72.     {
  73.         return $this->content;
  74.     }
  75.     public function setContent(string $content): self
  76.     {
  77.         $this->content $content;
  78.         return $this;
  79.     }
  80.     public function getDateCreated(): ?DateTimeInterface
  81.     {
  82.         return $this->dateCreated;
  83.     }
  84.     public function setDateCreated(DateTimeInterface $dateCreated): self
  85.     {
  86.         $this->dateCreated $dateCreated;
  87.         return $this;
  88.     }
  89.     public function getDateModified(): ?DateTimeInterface
  90.     {
  91.         return $this->dateModified;
  92.     }
  93.     public function setDateModified(?DateTimeInterface $dateModified): self
  94.     {
  95.         $this->dateModified $dateModified;
  96.         return $this;
  97.     }
  98.     public function getDatePosted(): ?DateTimeInterface
  99.     {
  100.         return $this->datePosted;
  101.     }
  102.     public function setDatePosted(DateTimeInterface $datePosted): self
  103.     {
  104.         $this->datePosted $datePosted;
  105.         return $this;
  106.     }
  107.     public function getId(): ?int
  108.     {
  109.         return $this->id;
  110.     }
  111.     public function getImageFilename(): ?string
  112.     {
  113.         return $this->imageFilename;
  114.     }
  115.     public function setImageFilename(?string $imageFilename): self
  116.     {
  117.         $this->imageFilename $imageFilename;
  118.         return $this;
  119.     }
  120.     /**
  121.      * @return string|null
  122.      */
  123.     public function getThumbnailFilename(): ?string
  124.     {
  125.         return $this->thumbnailFilename;
  126.     }
  127.     public function getTitle(): ?string
  128.     {
  129.         return $this->title;
  130.     }
  131.     public function setTitle(string $title): self
  132.     {
  133.         $this->title $title;
  134.         return $this;
  135.     }
  136.     /**
  137.      * @param string|null $thumbnailFilename
  138.      * @return NewsArticle
  139.      */
  140.     public function setThumbnailFilename(?string $thumbnailFilename): NewsArticle
  141.     {
  142.         $this->thumbnailFilename $thumbnailFilename;
  143.         return $this;
  144.     }
  145.     public function getImageFilenameWithoutExtension() :string
  146.     {
  147.         return substr($this->getImageFilename(), 0strrpos($this->getImageFilename(), "."));
  148.     }
  149.     /**
  150.      * @return bool
  151.      */
  152.     public function isArchived(): bool
  153.     {
  154.         return $this->archived;
  155.     }
  156.     /**
  157.      * @param bool $archived
  158.      * @return NewsArticle
  159.      */
  160.     public function setArchived(bool $archived): NewsArticle
  161.     {
  162.         $this->archived $archived;
  163.         return $this;
  164.     }
  165.     public function isPublished(): ?bool
  166.     {
  167.         return $this->published;
  168.     }
  169.     public function setPublished(bool $published): self
  170.     {
  171.         $this->published $published;
  172.         return $this;
  173.     }
  174. }