Home PageКаталог Изменения НовыеКомментарии Пользователи Регистрация
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()). Полностью собранная страница отправляется в браузер Ивана.

<< Файловая структура | Соглашения >>


 
Комментарии

О-о-о-чень тяжело воспринимается! Сильно перегружено терминологией программиста. Ему, программеру, это читать не нужно, а начинающий мастер-самоучка уйдет отсюда навсегда так ничего полезного и не взяв...

193.37.156.226 (2009-02-03 21:06:39)
Наверное не стоит с этой статьи начинать изучение Сake PHP?. Для начала почитайте cake blog tutorial. Посмотрите классы модели и контроллера. Их свойства и методы. Тогда всё намного понятние. Тут нет ничего сложного и загруженного.
mm-90-189-84-93.dynamic.pppoe.mgts.by (2009-02-18 16:51:19)
Вполне доступно и интересно. Был уже небольшой опит с ZC. Новичкам действительно будет сложно что-либо понять, но как базовая теория для людей знакомых с фреймовиками – великолепная статья (коротко и ясно)!
smtp.ntu.edu.ua (2009-11-27 14:07:12)
Написано все лаконично и доступно, само собой, для тех, кто имел дело с другими фреймворками.
+5 авторам.
89.232.105.63 (2010-02-08 22:55:40)
Очень достойный перевод – автору 5+. Правда лично я бы заменил слово «метод» на слово «процедура» .. т.к. по сути никакой это не метод, а функция без возврата ;)
e179031119.adsl.alicedsl.de (2010-03-10 05:22:16)
О-о-о-чень тяжело воспринимается! Сильно перегружено терминологией программиста. Ему, программеру, это читать не нужно, а начинающий мастер-самоучка уйдет отсюда навсегда так ничего полезного и не взяв...

Вот уж точно! п.3 убил!
95.56.58.30 (2010-03-17 12:02:35)

есть ф-и и процедуры а метод это метод, это ф-я или процедура которая принадлежит классу...

Отображение вроде создано для отделения логики от представления... какая в нем может быть логика?) или перевод неправильный или mvc в кейке неочень, или я чтот не понимаю =\
deneb.mex.com.ua (2010-04-07 14:57:59)
MVC – это вообще штука слишком навороченная для простых смертных)) На Дельфи куда удобнее всё было...
wimax-client.yota.ru (2010-06-04 11:14:57)
Думаю пришло временя прекращать быдлокодить... и учиться умным вещам, которые упростят жизнь нам и юзверам...
89.208.126.9 (2010-06-15 04:01:25)
говори за себя
v08-15.opera-mini.net (2010-08-08 18:44:07)
Отлично написано. Спасибо.
62.109.173.149 (2010-08-08 22:27:26)
да .коротко и по теме
unalloted.zaporozhye.net (2010-08-19 15:55:15)
В общем, есть такая книга.
Д. Томас, Д. Х. Хэнссон
Гибкая разработка веб-приложений в среде Rails

В ней во второй части даётся сквозной пример создания интернет-магазина. После прочтения этой второй части (не зная языка Rails), чтение этого раздела (cakePHP manual) не составляет трудностей. Если с нуля учить cakePHP, то наверное этот раздел слегка перегружен.
mailik.ford-krasnoyarsk.ru (2010-12-08 11:59:40)
Что с изображениями?
10.233.86.109.triolan.net (2011-03-05 00:42:31)
Без примера нет смысла словам. Если знаешь что такое «пирог», то и понятно о чём написано, если не знаешь.... то реально наверное может мозг сорвать :) А может я просто практик а не теоретик
62.63.156.118 (2011-06-07 15:49:35)
Да, кстати, изображения не подгружаются. Хотя и так понятно.
Как раз искал ядро для своих задумок.
Кстати, не слушайте тех, кто говорит – перегружено терминологией. Терминология элементарная и дает четко понять, о чем идет речь. Когда начинаешь пересказывать логику используя бытовые слова, то начинаются разночтения сказанного – то есть текст может пониматься не однозначно уже самими программистами. А это хуже, чем вопли говнопрогеров о перегруженности терминами.
84-52-64-198.westcall.net (2011-06-24 11:23:32)
Соглашусь с тем что написано несколько трудновато для восприятия. Человек, плохо представляющий себе что такое классы, сломает себе мозг напрочь. Вот если бы все это дело разбавить примерчиком, как то нагляднее бы было. Ну а в целом, кратко и по теме, а это гуд)))
pppoe75.net223.omkc.ru (2011-08-11 13:13:06)
Добавить комментарий:

Файлы [Скрыть файлы/форму]
2007-12-01 11:49:32    (36 Кб)  requests.png Типичный запрос Cake PHP