. */ namespace SP\Core\Messages; /** * Class MessageBase * * @package SP\Core\Messages */ abstract class MessageBase implements MessageInterface { /** * @var string */ protected $title; /** * @var array */ protected $footer = []; /** * @var array */ protected $description = []; /** * @return static */ public static function factory() { return new static(); } /** * @return string */ public function getTitle() { return $this->title; } /** * @param string $title * * @return MessageBase */ public function setTitle($title) { $this->title = $title; return $this; } /** * @param FormatterInterface $formatter * @param bool $translate * * @return string */ public abstract function getDescription(FormatterInterface $formatter, $translate = false): string; /** * @param array $description * * @return MessageBase */ public function setDescription(array $description) { $this->description = $description; return $this; } /** * @param string $description * * @return MessageBase */ public function addDescription(string $description) { $this->description[] = $description; return $this; } /** * @return array */ public function getFooter() { return $this->footer; } /** * @param array $footer * * @return MessageBase */ public function setFooter(array $footer) { $this->footer = $footer; return $this; } }