TGViewer
Пых Пых @phpyh · 7.83K subscribers
Post #67 1.13K
Вышел первый пакет Yii3 yiisoft/friendly-exception. Он состоит из одного интерфейса https://github.com/yiisoft/friendly-exception/blob/master/src/FriendlyExceptionInterface.php, который нарушает как минимум два принципа.

Принцип именования: исключение должно само иметь "Human understandable name", а не имплементировать лишний метод getName(). Имя класса — это и есть главное название, а для дополнительной информации предусмотрен стандартный метод getMessage().

Принцип разделения интерфейсов. Метод public function getSolution(): ?string обуза, потому что при имплементации интерфейса без предполагаемого решения придется добавлять плейсхолдер return null. Вместо этого правильнее было сделать отдельный интерфейс с сигнатурой без null, например:

interface SolutionAwareExceptionInterface extends Throwable
{
public function getSolution(): string;
}


Помимо этого интерфейс почему-то не наследует Throwable, что позволяет использовать его вне контекста исключений. Хорошая практика — максимально ограничивать контекст использования для предотвращения выстрелов в ногу.

В целом пакет выглядит бесполезным без обработчика этого самого FriendlyException. Это интерфейс ради интерфейса. Задача, которую он якобы решает, настолько тривиальна, что при необходимости проще решить её в приложении самому, чем тащить еще одну библиотеку.
GitHub friendly-exception/src/FriendlyExceptionInterface.php at master · yiisoft/friendly-exception An interface for an exception to be friendly. Contribute to yiisoft/friendly-exception development by creating an account on GitHub.
More from @phpyh
  1. Sep 30, 2026🍺 BeerPHP AI Moscow Кажется, «неделя PHP» потихоньку превращается в месяц PHP. 😅 Будет 2…
  2. Sep 28, 2026Запустили Пыхник и неделю PHP! Залетайте на первый открытый доклад от Дмитрия Dantes про к…
  3. Sep 15, 2026Сейчас один человек с AI может выполнять работу целого IT-отдела. Только хуёво
  4. Sep 12, 2026Спасибо за заявки! Всем напишу в понедельник. Осталось 1 место.
  5. Sep 11, 2026Хардкорный курс асинхронного PHP https://hardcourse.ru/php/async
  6. Sep 11, 2026Ещё полчасика надо — сайт готов, расписываю программу! 🙏
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →