Рефакторинг исключений, новые константы ограничений

Описывать все слишком долго, TLDR:
- упрощены корневые AtolException, {BasicTooLongException => TooLongException}, {BasicTooManyException => TooManyException}
- InvalidSnoException заменён на InvalidEnumValueException
- добавлены новые константы, общий порядок изменён в соответствии с порядком упоминания в документации, ссылки на которую тоже добавлены с указанием страниц

Помимо этого, в enum-ах теперь должен быть предусмотрен метод getFfdTags()
This commit is contained in:
2021-11-22 14:51:10 +08:00
parent e1303f4fdb
commit 3bf8667437
48 changed files with 482 additions and 603 deletions

View File

@@ -12,7 +12,6 @@ declare(strict_types = 1);
namespace AtolOnline\Exceptions;
use Exception;
use Throwable;
/**
* Исключение, возникающее при работе с АТОЛ Онлайн
@@ -25,28 +24,15 @@ class AtolException extends Exception
protected array $ffd_tags = [];
/**
* AtolException constructor.
* Конструктор
*
* @param string $message
* @param int $code
* @param Throwable|null $previous
* @param string $message Сообщение
* @param int[] $ffd_tags Переопредление тегов ФФД
*/
public function __construct($message = "", $code = 0, Throwable $previous = null)
public function __construct(string $message = '', array $ffd_tags = [])
{
$message = $message ?: $this->message;
if ($this->getFfdTags()) {
$message .= ' [FFD tags: '.implode(', ', $this->getFfdTags()).']';
}
parent::__construct($message, $code, $previous);
parent::__construct(
($message ?: $this->message) . ' [Теги ФФД: ' . implode(', ', $ffd_tags ?: $this->ffd_tags) . ']'
);
}
/**
* Возвращает теги ФФД, с которыми связано исключение
*
* @return array
*/
protected function getFfdTags(): array
{
return $this->ffd_tags;
}
}
}