Минималистичная схема Action и Use Case в PHP: общий сценарий приложения разделяет логику на сервисы, работу с базой данных, доменные правила и внешние операции.

В PHP-проектах часто используют классы под конкретные сценарии приложения. Где-то их называют Action, где-то UseCase, где-то ApplicationService, где-то CommandHandler. Названия разные, но идея одна: отдельный класс описывает конкретное…

Иллюстрация к статье про исключения в PHP и Laravel: обработка ошибок, бизнес-логика, архитектурные слои, API-ответы и безопасное логирование.

Исключения в PHP часто воспринимают слишком узко: как способ “поймать ошибку” через try/catch. Из-за этого в проектах появляются две крайности. Первая — исключения почти не используют. Методы возвращают…

Схема агрегата Order в DDD с границами консистентности, Aggregate Root, объектами OrderItem, OrderStatus и Money, связанными с Customer и Product по ID.

Агрегаты в Domain-Driven Design часто понимают неправильно. Разработчик видит таблицы orders, order_items, products, users, переносит эти связи в объектную модель один к одному и считает, что теперь у…

Архитектура многих фреймворков зачастую требует расширения своих классов. Но сегодня речь только про чистый от фреймворков код, за который вы и/или ваша команда несет ответственность. В первую очередь…

Оригинал [EN] Приветствую всех! Добро пожаловать в августовский выпуск PHP Annotated, где мы расскажем о самых интересных событиях, произошедших в мире PHP за последний месяц, включая новости, статьи,…

Пакет для Laravel, который добавляет команду route:pretty Команда предназначена для красивого вывода в консоль доступных в приложении роутов. Установка composer require wulfheart/pretty_routes Использование php artisan route:pretty php artisan…

Макросы Laravel – это отличный способ расширить основные macroable классы Laravel и добавить дополнительную функциональность, необходимую для вашего приложения. Проще говоря, макрос Laravel – это подход к добавлению…

Проблема: Иногда может возникнуть необходимость использовать Laravel query builder вместо Eloquent либо из-за проблем с производительностью, либо из-за сложности запроса. Первая проблема, с которой вы могли столкнуться при использовании построителя запросов,…

Атрибуты модели Laravel в основном представляют поля базы данных для данной модели. Когда данные извлекаются из базы данных, к ним можно получить доступ через модель, поскольку они были фактическими…