找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1372|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 09:01:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            


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存在的。
            
            
您可能感兴趣的文章:
  • windows下zendframework项目环境搭建(通过命令行配置)
  • zend framework配置操作数据库实例分析
  • 解析如何使用Zend Framework 连接数据库
  • 解析zend Framework如何自动加载类
  • zend framework文件上传功能实例代码
  • 非常好用的Zend Framework分页类
  • Zend Framework实现多文件上传功能实例
  • Zend Framework上传文件重命名的实现方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端