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

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

Типичный запрос CakePHP

Мы рассмотрели основные составляющие CakePHP, давайте теперь посмотрим, как каждый ингредиент взаимодействует с системой чтобы выполнить самый базовый запрос. А рассматривать будем, продолжая простой пример, когда пользователь Рикардо нажимает на ссылку “Buy A Custom Cake Now!”, которая ведет на страницу, генерируемую CakePHP.

Flow diagram showing a typical CakePHP request

Рис.2:Типичный запрос CakePHP.

Черный = обязательный элемент, Серый = необязательный элемент, Blue = функция обратного вызова

  1. Рикардо нажимает ссылку, указывающую на http://www.example.com/cakes/buy, и его браузер делает запрос к веб-серверу.
  2. Маршрутизатор(Router) разбирает URL, для того чтобы извлечь параметры для данного запроса: контроллер, действие, и любые другие аргументы, которые будут влиять на бизнес-логику в ходе этого запроса.
  3. Используя маршруты, запрос URL проецируется на действие контроллера(controller action) (метод в классе специфического Контроллера). В данном случае, это - buy() метод CakesController. Метод beforeFilter() вызывается перед вызовом любого метода контроллера.
  4. Контроллер может использовать модель для получения доступа к данным вашего приложения. В этом примере, контроллер использует модель для извлечения последних покупок Рикардо  из базы данных. Любые функции обратного вызова(callbacks), поведения(behaviors), и источники данных(DataSources) могут применяться в ходе этой операции. Хотя использования моделей не обязательно, каждый контроллер CakePHP изначально нуждается, по крайней мере в одной модели.
  5. После того как модель извлекает данные, они возвращаются в Контроллер.
  6. Контроллер может использовать компоненты(components) для дальнейшей обработки данных или для выполнения других операции (например,управление сессией, авторизация, отправка электронной почты и др).
  7. После того как Контроллер при помощи Модели и Компонентов выполнил все необходимые операции над данными, они передаются в Отображение с помощью метода  set() метод. Функции обратного вызова применяются до отправки информации в Отображение.Выполняется логика Отображения, при этом могут использоваться Элементы(elements) и/или Помощники(helpers). По умолчанию результат отображения выводится в Разметке(layout).
  8. При этом могут быть применены функции обратного вызова (afterFilter()). Полностью собранная страница отправляется в браузер Рикардо.