code = $code; $this->title = $title; $this->setStatus($status ?: Status::none()); $this->explanation = $explanation; } public function getTitle(): string { return $this->title; } public function getStatus(): Status { return $this->status; } public function getExplanation(): string { return $this->explanation; } public function getCode(): string { return $this->code; } public function setTitle(string $title) { $this->title = $title; } public function setStatus(Status $status, string $explanation = null) { $this->status = $status; if (null !== $explanation) { $this->setExplanation($explanation); } } public function setExplanation(string $explanation) { $this->explanation = $explanation; } public function __toString() { return sprintf('%s: %s - %s', $this->status, $this->code, $this->title); } }