|
|||||||
Где должна находиться бизнес-логика в парадигме MVC?
Время создания: 03.10.2014 21:52
Текстовые метки: mvc, бизнес-логика, модель, вид, контроллер, Yii
Раздел: Компьютер - Программирование - Теория программирования
Запись: xintrea/mytetra_syncro/master/base/1412358774jqv54gxunx/text.html на raw.github.com
|
|||||||
|
|||||||
Вопрос: где должен располагаться код бизнес-логики в парадигме MVC? Ответ: бизнес-логика должна размещаться в Модели данных. Пример для фреймверка Yii: Допустим нам нужно перевести новость в архив. Делается это установкой поля status. Простой экшн в контроллере: public function actionArchiveNews($id) { $news = News::model()->findByPk($id); $news->status = News::STATUS_ARCHIVE; $news->save(); } Ошибка данного примера в том, что мы переносим бизнес-логику в контроллер. Это так же ведет к невозможности повторно использовать код (ниже объясню почему), но это лишь мелочь по сравнению со второй проблемой: что если мы изменим способ перевода в архив? Например, вместо изменения статуса мы будем присваивать true полю inArchive? И это действие будет выполняться в нескольких местах приложения? И это не новость, а транзакция на 10млн$? |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|