Laravel-way services, это что за сервисы и где хранить бизнес логику?

Прочитал этот вопрос и ответы к нему задался вопросом: а какие они, Laravel-way сервисы? Допустим, если брать DDD и слоистую архитектуру, у нас есть 2 типа сервисных классов (может и больше), это сервисы уровня/слоя приложения и сервисы уровня/слоя домена (бизнес-логики). Первые можно охарактеризовать как UseCases, т.е. варианты использования/пользовательские сценарии, они вызываются в http-контроллерах, api-контроллерах ну или в консольных командах, в свою очередь они "дирижируют" сущностями/агрегатами/сервисами уровня домена и взаимодействием всего этого доменного зоопарка, передавая одно в другое и т.д. Сервис уровня домена в свою очередь содержит бизнес-логику, которую не удалось разместить в какой-то сущности/агрегате по ряду причин (известным доменным экспертам и разработчикам). Тут понятно.

Но Laravel ведь не DDD фреймворк, к тому-же ещё и Eloquent - эктив рекорд. Везде пишут, мол, создавайте сервисы. А что это за сервисы такие? Laravel-сервисы это аналогия чему? Сервисам приложения (дирижёрам/вариантам использования) или сервисам домена? Ведь если это первый вариант - то там не должно быть бизнес логики, а лишь вызовы к доменному слою (методы сущностей/агрегатов/сервисов домена), а второй вариант вообще сугубо DDD-шный.

Так что же такое Laravel-way сервис? Это что-то типа менеджера Eloquent модели (почти по аналогии с доменным сервисом, только тут у нас вместо сущности - Eloquent модель, а сервис берёт ВСЮ бизнес-логику на себя) типа UserService, PostService? А где-же тогда хранить UseCases, ведь в контроллерах не вариант, придётся дублировать код в разные контроллеры/точки входа (api/http/консольные команды). Помогите разобраться.
  • Вопрос задан
  • 387 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы