热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CakePHP2.xCookBook中文版第三章入门之一个典型的CakePHP请求

Ricardo点击了指向http://www.example.com/cakes/buy的链接,并且它的浏览器发送了一个请求给你的web服务器。

一个典型的 CakePHP 请求

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


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

数字: 2. 标准 CakePHP 请求。

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

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


推荐阅读
  • 在 PHP 4, PHP 5 和 PHP 7 中,fstat 函数用于获取已打开文件指针的文件统计信息。此函数与 stat() 类似,但其操作对象为已打开的文件指针而非文件名称。 ... [详细]
  • 本文详细介绍了在PHP中如何创建新文件以及如何使自定义函数在整个项目中全局可用的方法,包括最新的实践技巧。 ... [详细]
  • 解决phpMyAdmin运行错误:mysqli_init(): 属性访问尚未允许
    本文探讨了在使用phpMyAdmin过程中遇到的mysqli_init()函数错误,并提供了有效的解决方案。 ... [详细]
  • 本文探讨了在执行SQL查询时遇到的因字符集不同而导致查询结果差异的问题,特别是涉及中文字符时。文章分析了在不同字符集设置下,SQL查询结果的变化,并提供了详细的解决方案。 ... [详细]
  • 本文探讨了如何在JavaScript中调用PHP函数及实现两者之间的有效交互,包括通过AJAX请求、动态生成JavaScript代码等方法。 ... [详细]
  • 本文介绍如何利用Python中的Epoll机制构建一个高效的Web服务器,该服务器能够处理多个并发连接,并向每个连接的客户端返回预定义的响应文本。通过使用Epoll,服务器可以实现高性能的I/O多路复用。 ... [详细]
  • ArcGIS技巧:为相邻地块创建指定宽度的隔离带
    在地理信息系统(GIS)的数据处理中,为了满足特定项目的质量检查标准,需要在相邻地块之间创建一定宽度的隔离带。本文将探讨如何使用ArcGIS工具解决这一问题,确保不同地块图斑间保持规定的最小距离。 ... [详细]
  • 本文详细解析了在Oracle数据库操作中遇到的ORA-01846错误,该错误通常出现在尝试使用NEXT_DAY函数处理日期时,因客户端和服务器端字符集不匹配导致的问题。文章不仅提供了错误的具体表现,还深入分析了错误原因,并给出了多种解决方案。 ... [详细]
  • 在网络通信领域,了解不同数制间的转换对于解析IP地址至关重要。本文将深入探讨IPv4和IPv6地址的不同表示方式,以及如何在这三种数制——二进制、十进制和十六进制之间进行有效的转换。 ... [详细]
  • 在尝试使用sp_rename对名为'账号表'的表进行重命名操作时,遇到错误15051,提示无法重命名表,因为该表已被设置为复制发布。本文将探讨这一问题的原因及解决方案。 ... [详细]
  • 探讨在数据库中存储URL时,删除尾部斜杠的安全性和潜在影响,以及如何确保URL的一致性。 ... [详细]
  • 本文详细介绍了如何通过电脑上的网络设置来更改域名的DNS服务器地址,帮助用户更好地管理和优化网络访问。 ... [详细]
  • Windows 平台 Ruby on Rails 安装指南
    本文详细介绍如何在 Windows 系统上安装 Ruby 及其开发框架 Rails,包括必要的环境配置和组件安装。 ... [详细]
  • 本文详细探讨了电脑重装操作系统后无法访问网络邻居的原因及解决方案,包括检查网络配置、权限设置等多个方面。 ... [详细]
  • 深入解析RAID0、RAID1和RAID5的不同特性及其安全性
    本文详细探讨了RAID0、RAID1和RAID5三种磁盘阵列技术的特点、优势以及它们在数据安全方面的表现。RAID0通过数据条带化提升性能,但牺牲了数据冗余;RAID1利用镜像技术确保数据的高可用性;而RAID5则结合了数据条带化和分布式奇偶校验,提供了较好的性能和数据保护。 ... [详细]
author-avatar
小布丁她Daddy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有