Свежайшие Пирожки от CakePHP по-русски

Полнейшее руководство CakePHP 1.2 на русском языке, горячие новости и полезные статьи

Описание архитектуры Модель-Представление-Контроллер

CakePHP следует  MVC  шаблону проектирования. Программирование с использованием MVC разделяет ваше приложение на три основные части:

  1. Модель представляет данные вашего приложения(прикладные данные)
  2. Представление отвечает за вывод данных модели
  3. Контроллер обрабатывает запросы и маршруты, сделанные пользователем.
Figure 1

Рис.1: Основной MVC запрос

Рис.1: Показывает пример схемы MVC-запроса в CakePHP. Чтобы проиллюстрировать, предположим, пользователь с именем "Рикардо" просто нажал на ссылку "Купить Пирог!" на вашей главной странице.

  • Рикардо нажимает ссылку, указывающую на http://www.example.com/cakes/buy, и его браузер делает запрос на ваш веб-сервер.
  • Диспетчер проверяет запрос URL (/cakes/buy), и отправляет запрос на нужный контроллер.
  • Контроллер обрабатывает свою логику, например он проверяет вошел ли Рикардо в систему (залогинился ли он на сайте).
  • Кроме того, контроллер использует модель для получения доступа к прикладным данных. Модели, как правило, представляют собой таблицы базы данных, но они также могут представлять LDAP записей, RSS -каналы, или файлы в системе. В этом примере, контроллер использует модель для извлечения последних покупок Рикардо из базы данных.
  • После того как контроллер обработал данные,они передаются в представление. Представление принимает эти данные и преобразует их в готовые страницы для отображения пользователям. Виды в CakePHP, как правило,представляются в HTML формате, но и вид может быть представлен как PDF, XML документ или объект JSON в зависимости от Ваших потребностей.
  • Отображение использует информацию из Контроллера для того чтобы создать готовый документ для пользователя. Рикардо видит в браузере готовую страницу.

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