RSS   Twitter   Copiny   Copiny
Нашел ошибку? 

Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!

Введение в Модель-Вид-Контролер (MVC) Joomla

Joomla — это один из фреймворков, который широко использует паттерн MVC (Модель-Вид-Контролер). Model-View-Controller — архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных части, так, что модификация одной из них оказывает минимальное воздействие на другие.

После того как посетитель сайта зашел на определенную ссылку на сайте, Joomla обрабатывает запрос и выясняет какую страницу запрашивает человек, определяет компонент который будет загружаться и обрабатывать все пришедшие переменные $_GET и $_POST ($_SESSION, $_COOKIE и другие — это уже обрабатывается в компоненте).

Если компонент был разработан согласно схеме MVC, то управление будет передано Контролеру (Controller), который в свою очередь решит, как обрабатывать переменные, какую модель(и) загружать, а также отправляет ответ пользователю о том или ином событии.

Модель (Model) работает с данными, которые необходимы компоненту, а именно выбирает, сохраняет, обновляет, удаляет и прочее… В большинстве случаев эти данные выбираются из базы данных сайта, но так же можно использовать в виде хранилища какие-либо веб-сервисы с других серверов, например RSS. Цель модели — изолировать контролер и вид от деталей того, как были собраны и изменены и хранятся данные компонента.

Вид или представление (View) отвечает за генерацию выходного кода, внешний вид. Часто это место называют «шаблоном» сайта. Он вызывает Модель и запрашивает у неё определенные данные. Модель собирает всю необходимую информацию и отдает её Виду, который отправляет ее пользователю в виде HTML (т.е вместе с дизайном, картинками, стилями…). При этом HTML-код — это только один из многочисленных вариантов. Легко можно сделать результатом работы компонента json, pdf, чистый текст, файл… При этом изменения коснутся только Вида.

Чтобы обеспечить дополнительную гибкость и мощность в шаблонах, упростить жизнь разработчика, для Вида предусмотрено разбиение на дополнительные уровни («layout»). Так, одному виду может принадлежать несколько уровней. Например, для Вида «Форма» есть уровни «Форма», «Сообщение», «Ошибка отправления». Или такой пример: Вид списка категорий может иметь совершенно различный код HTML, но при этом данные отображаются одни и те же, т.е модель одна и та же. Для этого мы создаем различные уровни Вида.

Имея весь этот «арсенал», разработчик может создавать мощные и гибкие приложения, которые в будущем легко расширить. При этом, для того чтобы изменить логику программы, нужно изменить только Контролер, для изменения места хранения и способа обработки информации — изменить только Модель, а изменив Вид, меняется внешний вид компонента, который собственно и видит пользователь.

Смотрите также:
Комментарии (1) Добавить комментарий
  • Дмитрий
    Дмитрий
    21 Марта 2013, 16:33
     ↑  +7  ↓     ответ

    В статье хотелось бы видеть именно реализацию MVC в Joomla, а не общие фразы про MVC который ты вытянул с википедии. Как MVC реализован в Joomla где лежит контроллер, где модель, где вьюха???

Оставить комментарий




* обязательно для заполнения

1 введенный почтовый адрес используется только для обратной связи при ответах в комментариях и сервиса gravatar.com
.