Chinaunix首页 | 论坛 | 博客
  • 博客访问: 469100
  • 博文数量: 95
  • 博客积分: 2117
  • 博客等级: 大尉
  • 技术积分: 2301
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-16 21:10
个人简介

辽宁铁岭人,现居大连。1970年生。 先后供职于 中国国际海运网、大连学堂科技、大连华仁视线网络科技有限公司、大连中科海云科技有限公司,任职技术总监。 精通PHP、JAVA、Javascript、HTML、CSS等网络编程技术及Linux操作系统。 精通面向对象编程、设计模式、重构及互联网产品设计。

文章分类

全部博文(95)

文章存档

2013年(31)

2012年(2)

2011年(34)

2010年(25)

2008年(3)

分类: PHP

2013-01-25 11:02:00

一个典型的 CakePHP 请求

我们已经在 CakePHP 中覆盖了基本的要素,让我们看看对象如何共同协作完成一个基本的请求。 下面是原始请求的例子,让我们想象我们的朋友 Ricardo 刚刚点击了 CakePHP 应用程序中登录页 “Buy A Custom Cake Now!” 链接。


流程图显示了一个标准的 CakePHP 请求

数字: 2. 标准 CakePHP 请求。

黑色 = 必备的元素, 灰色 = 可选的元素, 蓝色 = 回调

  1. Ricardo 点击了指向 的链接,并且它的浏览器发送了一个请求给你的 web 服务器。
  2. 路由解析这个 URL 用于获取请求中的参数:控制器、动作(action)和请求中影响商业逻辑的全部剩余参数。
  3. 使用路由,请求 URL 映射到一个控制器动作(具体的控制器类的一个方法)。在本例中,是 CakesController 的 bug() 方法。此控制器的 beforeFilter 回调方法将在其全部逻辑动作(action)执行之前被调用。
  4. 控制器可能会使用模型获取应用程序的数据。在本例中,控制器使用模型从数据库中匹配 Ricardo 最后的订单。所有的可用模型回调、行为和数据源将在此操作中应用。模型不是必须的,但所有的 CakePHP 控制器初始化包含至少一个模型。
  5. 当模型获取到数据,就将其返回给控制器,模型回调被应用。
  6. 控制器可能会使用组件以进一步完善数据或执行其它操作(如 session 处理、权限或者发送电子邮件)。
  7. 一旦控制器使用模型和组件准备好了数据,这些数据就被利用控制器的 set() 方法传送给视图。控制器回调可能会在数据传送前被调用。视图逻辑会被执行,其中可能会包括元素(elements)和/或助手。默认情况下,视图在一个布局内被渲染。
  8. 附加的控制器回调和(例如 afterFilter)可能会被应用。一切都完成之后,渲染完的视图代码被传送到 Ricardo 的浏览器。
阅读(1015) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~