Хорошо, у нас есть страница.Очень простой.Давайте назовем это page.php
.У него будет контроллер и вид.Контроллер просто перехватит некоторые переменные GET и распечатает их в начале этой страницы, в представлении будет показан верхний колонтитул и абзац, который будет содержать переменные GET из контроллера.
Теперь давайтепредставьте, что мы хотим добавить календарь.Вы думаете, это хорошо и легко.Ну, мне это совсем не кажется.
Календарь состоит из <table><tbody>X</tbody></table>
, который является чистым HTML и логическим PHP-скриптом (который заполнит X
), который будет создан (на основеtime()
отметка текущей даты и времени) даты и числа месяца.
Теперь я сталкиваюсь с этической проблемой: как я могу разделить логику и представление этого календаря?
Блок кода, который создаст даты, напечатает <td>
и <tr>
, уточняющие time()
.Но если логика печатает HTML, разве это не плохо?Я так думаю, потому что вы теряете то удобное мышление, которое называется «разделение логики и взгляда», что типично для паттерна MVC.
В то же время, если мы перенесем всю календарную логику в контроллер и просто отправим в представление и массив дат (с координатами X и Y, чтобы сообщить ему место, куда следует поместить первую датумесяц) представление все еще будет нуждаться в разработке массива, и оно также станет логикой.
Как я могу на самом деле разделить логику и представление из этого календаря?