Files
blog/app/Entity/Post.php
2025-06-20 07:55:37 +00:00

73 lines
1.8 KiB
PHP

<?php
namespace Blog\Entity;
/**
* Repräsentiert einen Blogpost mit ID, Titel, Inhalt, Autor und Zeitstempel.
*/
class Post {
/**
* Erstellt eine neue Post-Instanz.
*
* @param int $id Die eindeutige ID des Blogposts.
* @param string $title Der Titel des Blogposts.
* @param string $content Der Inhalt des Blogposts.
* @param string $author Der Name des Autors.
* @param int $stamp Der Zeitstempel der Veröffentlichung.
*/
public function __construct(
private int $id,
private string $title,
private string $content,
private string $author,
private int $stamp
) {}
/**
* Gibt die ID des Blogposts zurück.
*
* @return int Die eindeutige ID.
*/
public function getId(): int {
return $this->id;
}
/**
* Gibt den Titel des Blogposts zurück.
*
* @return string Der Titel des Blogposts.
*/
public function getTitle(): string {
return $this->title;
}
/**
* Gibt den Inhalt des Blogposts zurück. Optional kann eine maximale Länge angegeben werden.
*
* @param int|null $maxlength Die maximale Zeichenanzahl, falls angegeben.
* @return string Der gekürzte oder vollständige Inhalt des Blogposts.
*/
public function getContent($maxlength = null): string {
return $maxlength
? mb_strimwidth($this->content, 0, $maxlength, "...")
: $this->content;
}
/**
* Gibt den Namen des Autors zurück.
*
* @return string Der Name des Autors.
*/
public function getAuthor(): string {
return $this->author;
}
/**
* Gibt das Veröffentlichungsdatum und die Uhrzeit formatiert zurück.
*
* @return string Das Datum und die Uhrzeit im Format `d.m.Y H:i:s`.
*/
public function getDateTime(): string {
return date('d.m.Y H:i:s', $this->stamp);
}
}