Я пытаюсь изучить архитектуру MVC. Но я не могу понять, зачем вам контроллер. Посмотрите код ниже для моей модели и вида.
model.php подключается к базе данных и получает сообщение. view.php просто отобразит сообщение.
model.php
Я пытаюсь изучить архитектуру MVC. Но я не могу понять, зачем вам контроллер. Посмотрите код ниже для моей модели и вида. model.php подключается к базе данных и получает сообщение. view.php просто отобразит сообщение.
model.php
[110] view.php
Я установил для своего браузера значение http: //whwhathost/view.php? Id = 5
Это загружает пост с идентификатором 5. Мне не нужен контроллер здесь. Так что я запутался, зачем вам контроллер?
Примечание: объясните, пожалуйста, со ссылкой на приведенный выше пример. Я не увлекаюсь программированием, и изучение таких вещей, как CakePHP и т. Д., Является для меня ошеломляющим.
Редактировать: было бы здорово, если бы вы добавили controller.php к приведенному выше коду. Это помогло бы мне понять роль контроллера и то, как он взаимодействует с моделью и представлениями.
POST['id'] . "'");
$row = mysql_fetch_array($result);
$post = $row["post"];
mysql_close($db);
?>
view.php
Я установил для своего браузера значение http: //whwhathost/view.php? Id = 5
Это загружает пост с идентификатором 5. Мне не нужен контроллер здесь. Так что я запутался, зачем вам контроллер?
Примечание: объясните, пожалуйста, со ссылкой на приведенный выше пример. Я не увлекаюсь программированием, и изучение таких вещей, как CakePHP и т. Д., Является для меня ошеломляющим.
Редактировать: было бы здорово, если бы вы добавили controller.php к приведенному выше коду. Это помогло бы мне понять роль контроллера и то, как он взаимодействует с моделью и представлениями.
Вам не нужен контроллер, потому что ваш пример тривиален. Пример из реального случая:
Предположим, у вас есть CAD-приложение. CAD-приложение организовано как MVC. У вас есть:
Например, пользователь нажимает на квадрат и удаляет его. Контроллер получит событие из представления, создаст объект, представляющий команду (через шаблон Command), добавит его в очередь на отмену возможности и выполнит команду. После этого команда модифицирует модель, но ответственность за преобразование событий представления в сложный механизм, который модифицирует модель, лежит на контроллере.
Конечно, можно сказать, почему тогда не создается вид, создающий объекты команды? Ну, никто вам этого не запрещает, но в конечном итоге логика представления смешивается с логикой работы. Это идет вразрез с хорошим дизайном, хотя в самых тривиальных случаях с таким дизайном можно было бы жить. Например, если ваше CAD-приложение позволяет отображать список объектов как в виде 3D-представления, так и в виде списка объектов, и вы можете удалить оба вида, то вы ясно видите, что либо оба вида реализуют одну и ту же логику для работы с шаблоном команд (плохой дизайн), либо они просто направляют одно и то же сообщение на общий контроллер (хороший дизайн, MVC).
IMHO в MVC контроллер имеет два основных целя :
В сценарии с гораздо более функциональностью, чем в вашем образце, вы увидите преимущества. Но вы должны решить или против MVC и использовать тот же подход в каждой форме вашего приложения, не смешиваете его. Я бы предпочел MVC, вы почти всегда нуждаетесь в логике контроллера.
model.php is в данном случае вы управляете.
Роли модели, вида и контроллера нелегко различить, если у вас нет хорошего MVC фреймворка (простой PHP - не очень хороший).
Модель - это ваша структура данных, которая сделана постоянной в БД. С точки зрения кода, если в основном состоит из структуры данных как класса.
Вид просто отображает данные. В основном html с некоторыми тегами скриптинга.
Контроллер управляет тем, что происходит. Например, пользователь редактирует сообщение. Данные принимаются контроллером, могут быть немного изменены (добавлены метки времени, пользователи ip) и отправлены в модель для хранения. Затем контроллер решает, какой вид отобразить следующим и какие данные взять для нового вида.
Просто небольшой пример.