Zend framework处理一个http请求的流程分析


Posted in PHP onFebruary 08, 2010

Zend framework处理一个http请求的流程分析

 

1, 首先是bootstrap过程,初始化程序里用到的资源

2, 创建一个Zend_Controller_Front实体,实现front controller模式,这个实体类会负责将http请求派遣到恰当的controller的action里。

3, Front controller会创建俩个对象来封装http请求和http回复,分别是Zend_Controller_Request_Http和Zend_Controller_Response_Http

4, Front controller会创建俩个对象来实现url寻路和派遣,分别是routing和dispatcher, 分别负责找到指定url应该执行的控制器和动作,和载入对应的程序文件并执行对应的方法。

5, 通过controller的plugin机制,Zend_Controller_Action_ViewRenderer会为controller的实体类创建一个view属性,这个view是一个Zend_View的实体对象。它还负责在controller action请求处理完成后,将相应的template文件render呈现到http response对象里。最后response对象的内容会由Front Controller输出到浏览器。

6, 在第五步中,虽然template文件是由ViewRender助手对象来定位的,但是是由Zend_VIew的一个成员函数执行的(include进这个template文件),所以在Controller里属性里view对象的所有属性和成员函数在template文件里都可以被使用。

 

这样一个http请求的生命周期就结束了,浏览器获得了内容。在controller的action给view指定要呈现的变量时,它一般会通过Zend_Db_Table与数据库交互,获得数据。

与数据库交互处理数据称为business logic, template文件里也会包涵简单的循环等逻辑,这个称为display logic。

在MVC实现中,Model负责处理business logic, View负责处理display logic,而Controller则负责协调这俩部分,从而Controller的代码应该尽量简洁,它只是作为一个agent存在的。

PHP 相关文章推荐
PHP个人网站架设连环讲(一)
Oct 09 PHP
PHP+javascript模拟Matrix画面
Oct 09 PHP
FleaPHP的安全设置方法
Sep 15 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
php cc攻击代码与防范方法
Oct 18 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
PHP实现在线阅读PDF文件的方法
Jun 23 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
PHP中的session安全吗?
Jan 22 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
PHP函数常用用法小结
Feb 08 #PHP
在PHP中养成7个面向对象的好习惯
Jan 28 #PHP
php 正确解码javascript中通过escape编码后的字符
Jan 28 #PHP
php读取xml实例代码
Jan 28 #PHP
通过具体程序来理解PHP里面的抽象类
Jan 28 #PHP
认识并使用PHP超级全局变量
Jan 26 #PHP
php 静态变量与自定义常量的使用方法
Jan 26 #PHP
You might like
PHP与已存在的Java应用程序集成
2006/10/09 PHP
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
9个比较实用的php代码片段
2016/03/15 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
解读Django框架中的低层次缓存API
2015/07/24 Python
Python中str.join()简单用法示例
2018/03/20 Python
python绘制直线的方法
2018/06/30 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
python实现TCP文件传输
2020/03/20 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
SQL数据库笔试题
2016/03/08 面试题
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
初中三好学生事迹材料
2014/01/13 职场文书
2014年大学生自我评价
2014/01/19 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
四年级学生评语大全
2014/04/21 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
2015年电工工作总结
2015/04/10 职场文书
电影建国大业观后感
2015/06/01 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书