← Заметки и статьи о Laravel PHP

17 июня 2015 перевод

Расширяем классы Laravel методом `orAbort` при помощи трейта

Вдохновлённый статьёй Edd Man's об опциональных управляющих потоках, я создал небольшой пакет Laravel для реализации опциональной остановки приложения.

Он предоставляет трейт SpatieOrAbortOrAbort, который может использоваться с любым классом. Всем методам класса добавляется 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.

Источник: https://murze.be/2015/06/a-trait-to-optionally-abort-a-laravel-app/

Плюсануть
Поделиться
Отправить