о применении MVC - PullRequest
       6

о применении MVC

1 голос
/ 02 марта 2012

Я видел все типы уроков: Просмотр работающего контроллера, передача модели контроллера в представление, установка установки контроллера представления.

Пример: MVC для чтения новостей. Контроллер загружает модель. Если результат модели «ложь», я могу вызвать другой метод из другой модели, содержащей другой блок.

Класс View должен иметь отношение к View_found View_not_found?

if (model-> news === true) {
      $ comment = model-> comment ()
}

Будет ли этот фрагмент кода отвечать за контроллер или это правило, что такая логика должна принадлежать бизнес-модели?

Ответы [ 4 ]

0 голосов
/ 02 марта 2012
0 голосов
/ 02 марта 2012

Как сказал Расмус Лердорф

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

На самом деле, в веб-приложении обычно используют «MVC, ориентированный на действие», а не «MVC события». У вас есть контроллер, который знает его модель и представление для применения. Для отображения новостей у вас должен быть класс News, который является вашей моделью, NewsProvider, который работает с вашей базой данных. Ваш контроллер вычисляет данные, предоставленные базой данных и пользователем, и вызывает правильное представление.

0 голосов
/ 02 марта 2012

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

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

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

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

//get from model, pass parameter - that's it
if (model-> news ('all')) {
    //manipulate data for result
    //get appropriate view
    view->parse(html); //pass html to view, that's it
} else {
    //manipulate data for no result
    //get appropriate view
    view->parse(html); //pass html to view, that's it
}
0 голосов
/ 02 марта 2012

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

Вот часть кода действия контроллера :-).Вся логика должна быть в контроллере.Представления только визуализируют части содержимого.

ОБНОВЛЕНО Я рекомендую использовать здесь dataProvider.Метод модели (геттер) может вернуть объект DP для модели.Это зависит от того, какую платформу вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...