Технология MVC в сайтостроении

MVC  расшифровывается как Model-View-Controller  схема разделения каких-либо данных приложения, интерфейса с пользователем, бизнес-логики на три отдельных независимых компонента которые можно модифицировать независимо друг от друга.

  • Модель (Model) хранит данные и получает команды контроллера.
  • Представление (View) отображает данные  на основании данных из контроллера.
  • Контроллер (Controller) получает информацию от пользователя, загружает в модель нужную информацию для отображения.

Как мы писали раннее Zend Framework использует эту технологию. Существует несколько вариантов интерпретации этой технологии, разные фремворки и системы управления по своему толкуют ее. Мы опишем как используется MVC в Zend Framework в понимании программистов нашей студии.

Все необходимые компоненты фреймворка устанавливаются автоматически вместе со стартовым приложением. Сегодня мы не будем вдаваться в подробности как создавать те или иные объекты, и будем считать, что они уже существуют и работает верно. Рассмотрим работу на примере модуля Mf\Statpage, его структура (нас будет интересовать отмеченные элементы):

При обращении к сайту по адресу masterflash.ru/page/url вызывается метод indexAction в файле IndexController.php (на рисунке отмечен). Этот файл и есть наш контроллер, который обрабатывает запрос и считывает нужную страницу из базы. После обработки, информация загружается в специальный объект, по умолчанию он имеет имя viewModel - это встроенный в фреймворк объект, который является моделью. В него записываются любые данные, и параметры, как должно реагировать представление. По сути, модель это простой объект-класс, который имеет служебные методы и свойства. После завершения работы контроллера, управление передается в специальный рендер, который вызывает нужный файл с представлением (на рисунке папка view с отметкой). Внутри представления вся информация, занесенная в контроллере доступна в контексте $this->переменная - мы просто выводим среди html кода в нужных местах значения переменных, например, < ?=page;?>. При необходимости можно использовать циклы и другие средства фреймворка, которые облегчают жизнь программисту.

Разработчики Zend Framework добавили и другие типы моделей, которые упрощают программирование сайта. Передавая нужные параметры в модель можно отключить вывод всего макета, или загрузить сразу несколько файлов с представлением.

Мы писали что Zend Framework очень строг к программисту, всю бизнес логику мы можем разместить только либо в контроллере, либо в специальном сервисе. Сделать обращения к базе данных в представлении не получится, т.к. там не доступны никакие средства работы с базами данных, или другой сложной логикой сайта.

Возникает вопрос, если мы разместим нашу бизнес логику в контроллере, и нам вдруг она понадобится, например, в помощниках - о которых мы поговорим позже, что делать? Дублировать код? Нет, к счастью, мы можем создавать свои объекты, например, сервисы, в которых будет наша бизнес логика, используемая в нескольких местах нашего приложения. Контроллер просто загружает этот сервис и обращается к нужным методам, результат так же записывает в модель.

Итак, мы рассмотрели в общих чертах принцип работы MVC технологии в наших сайтах. Она существенно облегчает отладку и поддержку работы сайтов, т.к. html полностью отделен от логики сайта. Благодаря такому разделению легко вносить изменения, в те или иные части сайта. Если вы закажите разработку своего сайта в нашей студии, сайт будет непременно современный и будет работать на описываемом фреймворке.

Веб-студия "Мастер Флеш"
+7 (928) 416 53 03
ул. Зиповская 5/2 350010 Россия, г.Краснодар

Перейти к списку