Блог веб-разработчика: в помощь программистам

Расставим все по местам: подход MVC

Первое правило 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-странице.

  • MVC спасает нам тонны времени!

  • Разрабатываю проект на mvc таким образом.
    Делаю папки

    libs: Здесь ядро и все необходимые классы, в том числе и класс шаблонизатора Smarty
    view: Здесь шаблоны
    modules: Здесь контроллеры для разных типов страниц

  • Хорошая статья

  • с такими расширениями можно легко получить текст скрипта в браузере как текст, если не позаботиться об этом в настройках веэб-сервера. Что собственно очень неудобно

You can follow any responses to this entry through the RSS 2.0 feed.