Как я могу отделить логику и код представления при создании календаря? - PullRequest
1 голос
/ 23 апреля 2011

Хорошо, у нас есть страница.Очень простой.Давайте назовем это page.php.У него будет контроллер и вид.Контроллер просто перехватит некоторые переменные GET и распечатает их в начале этой страницы, в представлении будет показан верхний колонтитул и абзац, который будет содержать переменные GET из контроллера.

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

Календарь состоит из <table><tbody>X</tbody></table>, который является чистым HTML и логическим PHP-скриптом (который заполнит X), который будет создан (на основеtime() отметка текущей даты и времени) даты и числа месяца.

Теперь я сталкиваюсь с этической проблемой: как я могу разделить логику и представление этого календаря?

Блок кода, который создаст даты, напечатает <td> и <tr>, уточняющие time().Но если логика печатает HTML, разве это не плохо?Я так думаю, потому что вы теряете то удобное мышление, которое называется «разделение логики и взгляда», что типично для паттерна MVC.

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

Как я могу на самом деле разделить логику и представление из этого календаря?

Ответы [ 2 ]

4 голосов
/ 23 апреля 2011

Простая итерация по массиву в представлении - это прекрасно, а не нарушение шаблона MVC.Логика происходит в контроллере, где вы заполняете массив.Еще лучше, вероятно, было бы поместить логику в модель с именем Calendar.php и просто инициализировать ее в контроллере, чтобы передать ее представлению.

0 голосов
/ 23 апреля 2011

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

в файле представления, вы можете выводить переменные и легко добавлять теги html.

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