Методика разработки приложений на основе MVC

Практически любой freamwork, который предназначенный для разработки веб-приложения написан на языке PHP. К примеру CodeIgniter, ZendFreamwork, Kohana, Yii и т.д. Не смотря на это методы написания веб-приложений с помощью MVC framework совершенно отличается от стандартных методов написания кода сайта на PHP.

Стандартный способ написания веб-приложения не накладывает рамки на программиста, единственным ограничением является принципы языка программирования. Для разработки веб-приложения достаточно иметь знания и навыки работы с языком программирования (к примеру PHP) и при возможности иметь представление о объектно-ориентированном программировании.

При разработке приложения на основе MVC framework накладываются ограничения, причем несколько. В процессе работы с mvc фреймворком программист должен владеть:

  1. Языком программирования (PHP).
  2. Языком фреймворка, иметь представление структуры mvc фреймворка.
  3. Моделью модель-представление-контроллер (MVC).

Языком фреймворка можно считать набор методов, которые включены в состав фреймворка. Практический каждый из них состоит из набора классов, каждый из которых имеет свое узкое назначение. Авторы фрейморков рекомендуют отказаться от функций языка программирования, чтобы не нарушать его работу и  не выйти за рамки MVC модели. Внедрение языка программирования в модуль, может сказаться на работе веб-приложения разрабатываемого на основе framework.

Модель MVC – это схема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента так, что модификация одного из компонентов оказывает минимальное воздействие на остальные. Ниже представлен схематический пример mvc.

Документ11

Рис. 1 Концепция модели MVC «Модель-представление-контроллер»

Суть модели проста, контроллер служит для связки модели и представления. Представления выступает шаблоном, в котором будут выводится данные полученные из модели. Встречаются случаи, когда модель совершенно не используется, так как для получения данных достаточно контроллера.

Сплошными линиями на рис. 1 показаны прямые связи (вызовы методов, присвоение значений полей), прерывистыми линиями показаны косвенные связи (сообщения через события).

К примеру в MVC framework CodeIgniter, контроллер и модель представляют собой два различных файла содержащих в себе класс наследуемый от базовых классов фреймворка. Представление выступает как обычный HTML-документ содержащий в себе вставки кода PHP. Для получения данных, предположим из базы, используется методы класса модели, вызов которых производится в контроллере, полученные даны посылаются контроллером в представление.

Стоит сказать, что при работе с любым MVC фреймворком необходимо владеть знаниями ООП, так как при работе с контроллером, либо моделью необходимо производить наследование классов, переопределение некоторых методов и т.п.

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