WEB -
Переключить навигацию

Язык

  • Українська
  • Русский
  • Polski

Введите не менее 3 символов для поиска.

  • Українська
  • Русский
  • Polski

Поиск

Введите не менее 3 символов для поиска.

Книги
  • Книги
  • JavaScript
  • HTML и CSS
  • Без категории
  • Другие темы
  • SEO
  • WordPress
  • Дизайн
  • PHP
  • Laravel
  • React js
  • Python
  • SQL и языки запросов
  • Android
  • Yii PHP framework
  • Статьи
  • Laravel
  • WordPress
  • Темы WordPress
  • Интернет магазин
  • JavaScript
  • © 2015-2026 Andrii Beznosko

  • Our partner

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

  • Описание
  • Описание/Скачать

Вдохновлённый статьёй 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.

Комментарии

Всего комментариев: 0

Оставить комментарий Отменить ответ

Ваш email не будет опубликован.

Категория: Главная » Статьи » Laravel » Расширяем классы Laravel методом `orAbort` при помощи трейта
Статус: For advanced readers
Ссылка на оригинальную статью (если указана или статья не является нашей) Скачать
Добавил Сен 18, 2015 13:13 Andriy

Статьи, опубликованные на WEB-Программист, сопровождаются ссылками на источники. Администрация сайта не несёт ответственности за использование этих материалов.

Смотрите также:

Генерируем ЧПУ в Laravel 5

Обычно в ЧПУ страниц используется транслит, перевод или фраза в оригинальном состоянии без изменений. С третьим вариантом проблем возникать не должно, Laravel понимает кириллицу из коробки. Рассмотрим остальные два варианта. Перевод Для генерации переведённого ЧПУ нам понадобится пакет Google Translate...

Отладка запросов в Laravel

Laravel предоставляет отличный конструктор запросов и ORM — Eloquent. Это позволяет писать запросы невероятно простым и понятным способом. Тем не менее, бывают случаи, когда вам нужно создать сложный запрос и увидеть, какой SQL в действительности сгенерируется. В этом руководстве мы...

Способы организации пространств имён классов в Laravel

В коде: <?php namespace App; class SendReceipt {}   Структура папок: src Receipt ReceiptRepository SendReceipt SendReceiptHandler User UserRepository CreateUser CreateUserHandler   Преимущества: Проще не иметь дело с подпространствами имён. В очень маленьких приложениях это может быть нормально. Если у вас...

Преимущества использования Репозиториев в Laravel

Что такое репозитории? Если вы читали мои предыдущие посты, то вы, наверное, уже знаете, что из себя представляют репозитории. Но понимаете ли вы, что является причинами для использования Репозиториев? Хотя для некоторых причины использования паттерна очевидны, я думаю, многие люди...

Трюки Eloquent для лучших репозиториев (Laravel)

Одна из лучших вещей в написании кода - очевидность хороших практик, ведь если им не следовать, возникает раздражение. Очень надоедает, когда вам нужно писать одну и ту же вещь снова и снова. Когда вы чувствуете себя недовольным из-за повторения одних...

Связаться с нами

- Премиум темы и плагины WP Star бесплатно -

Поддержать автора

Настройки cookie

Мы используем необязательные аналитические cookie, чтобы понимать, какие материалы полезны. Вы можете продолжить без аналитики.

Вы можете изменить свой выбор в любое время.