Модель - это кодовое представление ваших базовых объектов. Несмотря на то, что некоторые модели с меньшим объемом данных могут не подходить для модели MVC, я уверен, что вы всегда найдете подходящее применение.
Давайте возьмем надуманный (но реалистичный) пример полезности модели:
Скажи, что я делаю блог. В моем блоге есть объекты Post. Теперь сообщения используются внутри и вокруг сайта и добавляются многими пользователями в системе. Наша система была закодирована для того, чтобы люди могли вводить HTML в свои посты, но теперь люди начинают добавлять вставленный текст. В этом тексте в качестве символа новой строки используется "\ n".
С моделью это относительно простое исправление. Мы просто делаем геттер, который переопределяет postText:
public function get postText() {
return this.postText.replace("\n", "<br />");
}
Неожиданно мы можем повлиять на поведение всего сайта с помощью нескольких строк простого кода. Без реализации модели нам нужно было бы найти и добавить аналогичные функциональные возможности везде, где используется postText.
Модель в MVC полностью основана на инкапсуляции и гибкости кодовой базы, которая развивается с течением времени. Чем больше вы работаете с ним и думаете об этом таким образом, тем больше вы обнаруживаете другие случаи, которые в противном случае были бы кошмаром.
- РЕДАКТИРОВАТЬ (вы добавили к своему вопросу выше):
Давайте возьмем этот же пример и используем ваш контроллер для вызова базы данных. У нас есть 9 классов Controller для различных страниц / систем, которые используют объекты Post. Решено, что наша таблица Post должна теперь иметь delete_fl
. Мы больше не хотим загружать сообщения с delete_fl = 1
.
При правильной реализации нашей модели Post, мы просто редактируем метод loadPosts()
, вместо того, чтобы отыскивать все случаи на сайте.
Важным пониманием является то, что в любой крупной системе Модель представляет собой скорее набор файлов, чем отдельный монолит. Обычно у вас будет файл модели для каждой из ваших таблиц базы данных. Пользователь, почта и т. Д.