BT
Size: a a a
BT
BT
BT
С
P
P
P
P
P
АМ
АМ
yiisoft/friendly-exception
. Он состоит из одного интерфейса https://github.com/yiisoft/friendly-exception/blob/master/src/FriendlyExceptionInterface.php, который нарушает как минимум два принципа.getName()
. Имя класса — это и есть главное название, а для дополнительной информации предусмотрен стандартный метод getMessage()
.public function getSolution(): ?string
является обузой, так как при имплементации интерфейса без предполагаемого решения придется добавлять плейсхолдер return null
. Вместо этого правильнее было сделать отдельный интерфейс с сигнатурой без null
, например:interface SolutionAwareExceptionInterface extends Throwable
{
public function getSolution(): string;
}
Throwable
,
что позволяет использовать его вне контекста ошибок. Хорошая практика — максимально ограничивать контекст использования для предотвращения выстрелов в ногу.P
yiisoft/friendly-exception
. Он состоит из одного интерфейса https://github.com/yiisoft/friendly-exception/blob/master/src/FriendlyExceptionInterface.php, который нарушает как минимум два принципа.getName()
. Имя класса — это и есть главное название, а для дополнительной информации предусмотрен стандартный метод getMessage()
.public function getSolution(): ?string
является обузой, так как при имплементации интерфейса без предполагаемого решения придется добавлять плейсхолдер return null
. Вместо этого правильнее было сделать отдельный интерфейс с сигнатурой без null
, например:interface SolutionAwareExceptionInterface extends Throwable
{
public function getSolution(): string;
}
Throwable
,
что позволяет использовать его вне контекста ошибок. Хорошая практика — максимально ограничивать контекст использования для предотвращения выстрелов в ногу.P
С
P
С
P
С