Пихать много логики в модель — это Laravel way? Здравствуйте.
Немного предыстории: пару лет назад я брался изучать Yii2 (быстро это дело прекратил, ибо Yii2 - это какое-то надругательство над здравым смыслом) но вот помню, что там было что-то насчет "толстой модели - тонкого контроллера" - а в Laravel, как я вижу в примерах, всю логику размещают в контроллер.
Сейчас я делаю проект с мягким удалением отношений между моделями и мне кажется разумным разместить логику манипуляций с отношениями в методах модели.
Например, определить для User метод softToggle() для манипуляции отношениями с Role в самой модели User.
Насколько это общепринято в случае с Laravel?
Или вообще без разницы?
Спасибо.

21 Авг 2019 в 06:59
164 +1
1
Ответы
1

В Laravel действительно существует концепция "толстой модели - тонкого контроллера", однако пихать много логики в модель не всегда является хорошей практикой. Лучше всего придерживаться принципа единственной ответственности и размещать логику в соответствующих сервисах или репозиториях.

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

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

В целом, важно следовать принципам чистой архитектуры и выбирать подход, который будет наиболее удобен и понятен вашей команде разработчиков.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир