Вдохновлённый статьёй Edd Man’s об опциональных управляющих потоках, я создал небольшой пакет Laravel для реализации опциональной остановки приложения.
Он предоставляет трейт Spatie\OrAbort\OrAbort
, который может использоваться с любым классом. Всем методам класса добавляется orAbort
функциональность. Когда оригинальный метод возвращает false
, будет вызвана функция Laravel abort
с 404-м кодом ошибки.
Почему вы захотите использовать этот трейт? Обычно вы могли делать нечто такое:
$article = $articleRepository->find($articleId) ?: abort(404)
При использовании трейта код выше превратится в более читаемый:
$article = $articleRepository->findOrAbort($articleId);
Вы даже можете добавить дополнительный параметр с возвращаемым кодом:
$article = $articleRepository->findOrAbort($articleId, 500);
Если метод find
нашего репозитория возвратит false
, Laravel остановит приложение с кодом 500.
Трейт orAbort
использует магический метод __call
. Не применяйте его в классах, которые уже используют этот метод.
Найти пакет можно на GitHub.