CakePHP : Manual/BasicPrinciples/TypicalRequest

Стандартный запрос CakePHP


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

Типичный запрос Cake PHP (36 Кб)
Изображение 2: Типичный запрос CakePHP


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