Answer the question
In order to leave comments, you need to log in
What is the best concept for structuring a Laravel application?
What is the best concept for structuring a Laravel application for beginners for not very complex projects? Repositories or Services . About the repositories, there are a lot of negative reviews in the reviews. There is less information about services.
Or maybe there is something else?
Answer the question
In order to leave comments, you need to log in
Репозиторий это тоже сервис, RepositoryService. Оба ваши примера идентичны, и просто прячут вашу Eloquent модельку внутри себя, при этом спокойно её возвращают в return. Оба автора делают это без осознания зачем это надо и не получают никакого профита от этих телодвижений.
Единственное что можно вынести из примеров - не использовать eloquent методы в контроллере, их нужно выносить в отдельный сервис или как минимум в отдельный метод модели. Например, у модели Post добавили бы метод findBySlug() или createCoupon($code, $amount, $maxRedemptions), этого достаточно было бы для инкапсуляции и последующего расширения. (хотя не решает проблему с торчащим наружу AR, но это уже другой вопрос)
Мне кажется, что данные подходы не исключают друг друга. Репозиторий нужен для складирования запросов к модели, а сервисный слой для более сложной логики, которая неуместна в контроллере. И то, и другое уместно, если Вы понимаете, для чего нужен каждый шаблон проектирования.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question