@miy

Где хранить бизнес-логику приложения в Yii2?

В Yii2 есть 2 типа моделей: это Active Record и модель формы.
В каком из типов моделей нужно хранить логику приложения?
Или же лучше добавить отдельный сервисный слой, и хранить логику там?
  • Вопрос задан
  • 3923 просмотра
Решения вопроса 1
zetamen
@zetamen
В поисках нового
Так как ActiveRecord имеет свойство перегенериваться во время разработки, лучше вынести бизнес логику в отдельную модель.

Также есть такая балалайка, как yii2-giix, которая разделяет модель на базовую и обертку, в которой пишется бизнес логика. Не лучшее решение, но может ускорить разработку.

И да ,в yii2 нет модели формы, есть просто модель Model
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
А почему нельзя обрабатывать логику в контроллере?
Например, есть модель формы, где ее описываем, создаем правила валидации.
Есть контроллер, который рендерит нужную вьюху, в которую передается модель формы.
Пользователь видит вьюху и вводит данные в форме, они уходят в контроллер.

Там (в контроллере) логику обрабатываю, в зависимости от полученных данных либо снова рендерю что-то на экран, либо произвожу иные вещи (тут может быть что угодно - запись в бд, вызов какой-нибудь функции или метода и т.п.)

Это получается неправильно с точки зрения канонов MVC?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы