当前位置:首页 > PHP教程 > PHP高级教程

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存在的。



【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!