* * @todo Я бы вместо этого подключил библеотеку на PSR-7, да сделал там сбор и возврат всех ТИПОВ ошибок */ class Error { /** * Ошибка #100 * * Не установлен обязательный параметр * * @var string */ protected const ERROR_100 = 'Не установлен обязательный параметр'; /** * Ошибка #200 * * Неподходящее значение параметра * * @var string */ protected const ERROR_200 = 'Неподходящее значение параметра'; /** * Ошибки * * Собранные ошибки за время выполнения * * @var array */ protected static array $errors = []; /** * Создать ошибку * * @param int $type Тип ошибки * @param string|null $target Причина ошибки * @param string|null $message Сообщение об ошибке * * @todo Я бы переименовал $type (Тип ошибки) в $code (Код ошибки), но уже поздно * * @return void */ public function __construct(int $type, string $target = null, string $message = null) { self::$errors[] = [ 'type' => $type, 'target' => $target ?? 'request', 'value' => $message ?? constant('self::ERROR_' . $type) ]; } /** * Получить одну, либо все ошибки * * @param int|null $number Номер ошибки * * @return array */ public static function get(int $number = null): array { // Одна ошибка if (isset($number)) { // Если передан номер ошибки return self::$errors[$number]; } // Все ошибки return self::$errors; } }