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

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

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

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

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

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

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