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

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


Коментарии:
Добавить коментарий