Создание экземпляра модели в ларавел

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


Ответы (1 шт):

Автор решения: Romka
  1. Контроллеры действительно плохой вариант. Дублирование кода + нарушение SOLID. Контроллеры - это уровень взаимодействия с пользователем и там не должно быть бизнес логики.

  2. Сервис должен служить для взаимодействия между слоями приложения. Сервис должен знать, кто умеет создавать модель, но сам этого делать не должен.

  3. Репозитории тоже сомнительный вариант, так как логика создания может быть объемной.

  4. Рекомендую для создания моделей(и других объектов) использовать фабрики или билдеры в случае сложной логики построения объекта.

Таким образом за создание объекта у вас будет отвечать отдельный класс. Соблюдается принцип единой ответственности и такой класс легко протестировать.

→ Ссылка