Первое правило MVC — разбивайте сценарий на отдельные файлы. Зачастую для представления различных компонентов шаблона MVC используются файлы с разными расширениями, которые объединяются с помощью директивы require_once.
При этом не нужно следовать привычной практике именования файлов, при которой включаемым файлам присваивается расширение .inc. Это расширение ничего не говорит о содержимом файла и не позволяет различать их роли.
Например можно воспользоваться такими расширениями:
.php - Инфраструктура - Логика поведения - инфраструктура взаимодействия между моделью, видом и контроллером
.phpm - Модель - Классы PHP -”сердце” приложения
.phtml - Вид/Контроллер - Обработка результатов ввода пользователя и пользовательский интерфейс.
Может показаться странным, что контроллер и вид объединены в один файл, но это соответствует физическому прототипу. Поскольку Web-браузер пользователя выступает и в роли интерфейса (контроллера), и в качестве средства отображения данных (вида), то резонно объединить эти компоненты в едином файле.
При делении сценария на модули следует руководствоваться такими правилами.
□ Файл .php (управляющая страница) не должен содержать SQL-запросов или кода HTML.
□ Файл . phpm (классы) не должен содержать HTML-код.
□ Файл .phtml (шаблоны) не должен содержать SQL-запросов, а только базовые операторы PHP (for, if, while).
Такое разделение обеспечивает очень примитивную форму естественных шаблонов (native templating). В такой постановке интерпретатор РНР обрабатывает выходные данные приложения в отдельном файле шаблонов (в данном случае в файле .phtml). Выход определяется входными данным пользователя с помощью обработки в файлах логики (. php) и файлах классов (. phpm).
На практике этот подход реализуется следующим образом.
□ Файл .php получает запросы GET или POST (поэтому не приходится реконфигурировать сервер Apache для поддержки новых расширений файлов).
□ В файле .php содержатся все операторы require, необходимые для импортирования требуемых классов (каждый из которых хранится в файле . phpm).
□ Файл . php проверяет входные параметры, передаваемые с помощью метода GET или POST, и определяет ход дальнейших действий. Он передает полученные данные (либо в виде строки, либо в обработанном виде) методам классов включенным на предыдущем этапе.
□ Классы анализируют входные данные, обрабатывают их, выполняют запрос! к базе данных или другим источникам и возвращают данные файлу . php.
□ Файл . php проверяет полученные результаты и принимает решение о дальнейшем использовании данных. Передача этих данных всегда выполняется с помощью построения единой суперпеременной (обычно хеш-таблицы), содержащей неформатированные данные, которые должны отображаться для пользователя.
□ В файле .php с помощью директивы include подключается соответствующий файл .phtml.
□ Файл . phtml анализирует эту суперпеременную и отображает ее пользователю в соответствующем виде на Web-странице.
Комментариев нет:
Отправить комментарий