Конспекты по PHP MVC

PHP MVC





Model-View-Controller (MVC, «Модель-Представление-Контроллер», «Модель-Вид-Контроллер») — схема разделения данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента:

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


Модель (Model) - предоставляет данные и методы работы с ними: запросы в базу данных, проверка на корректность.

Модель не зависит от представления (не знает как данные визуализировать) и контроллера (не имеет точек взаимодействия с пользователем) просто предоставляя доступ к данным и управлению ими.


Модель строится таким образом, чтобы отвечать на запросы, изменяя своё состояние, при этом может быть встроено уведомление «наблюдателей».


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


Представление (View) - отвечает за получение необходимых данных из модели и отправляет их пользователю.

Представление не обрабатывает введённые данные пользователя.


Контроллер (Controller) - обеспечивает «связь» между пользователем и системой. Контролирует и направляет данные от пользователя к системе и наоборот. Использует модель и представление для реализации необходимого действия.



Основная цель применения этой концепции состоит в отделении бизнес-логики (модели) от её визуализации (представления, вида). За счёт такого разделения повышается возможность повторного использования кода. Наиболее полезно применение данной концепции в тех случаях, когда пользователь должен видеть те же самые данные одновременно в различных контекстах и/или с различных точек зрения. В частности, выполняются следующие задачи:


К одной модели можно присоединить несколько видов, при этом не затрагивая реализацию модели. Например, некоторые данные могут быть одновременно представлены в виде электронной таблицы, гистограммы и круговой диаграммы;


Не затрагивая реализацию видов, можно изменить реакции на действия пользователя (нажатие мышью на кнопке, ввод данных) — для этого достаточно использовать другой контроллер;


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



ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ




Шаблоны проектирования (Паттерны) MVC и Front Controller


Паттерн Front Controller


Файл .htaccess


Паттерн MVC (Model View Controller)


Controller + MVC


Файловая структура



Front Controller и Router


Front Controller и Router



Контроллер


Контроллер и Router



Модель


Модель



Представление (Вид)


Представление (Вид)






Наверх Наверх