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

zend解释php过程,Zend framework处理一个http请求的流程分析相关推荐

  1. 【面试题】一个Http请求的流程

    文章目录 一.一个Http请求的流程(+4分) 二.HTTP与HTTPS的特点和区别(+2分) 2.1.HTTP 2.2.HTTPS 2.2.1.https是什么 2.2.2.https 耗性能吗 ? ...

  2. Spring cloud Gateway(二) 一个Http请求的流程解析

    Spring cloud Gateway(二) 一个Http请求的流程解析 简介     通过一个简单示例,debug出Spring Cloud Gateway的一个HTTP请求的处理流程 思路整理 ...

  3. 【走进php内核】之 Zend引擎执行过程

    Zend引擎主要包含两个核心部分:编译.执行: 前面分析了Zend的编译过程以及PHP用户函数的实现,接下来分析下Zend引擎的执行过程. 1 数据结构 执行流程中有几个重要的数据结构,先看下这几个结 ...

  4. 一个HTTP请求的曲折经历

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:8rr.co/6usv 从一个经典的面试题说起,输入URL到 ...

  5. 一个 http 请求的曲折经历

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:本人真实经历:面试了20家大厂之后,发现这样介绍项目经验,显得项目很牛逼! 作者:nero 链接:https:/ ...

  6. 专业级智能PHP IDE Zend Studio教程:Zend Framework 2集成(1/3)——创建和部署新的ZF2项目

    Zend Studio是新一代的专业级智能PHP IDE(应用程序开发环境).它旨在帮助开发人员提高工作效率,创造出高品质的PHP应用程序!它包含了PHP开发所必须的部件,通过一整套的编辑.调试.分析 ...

  7. php的zend引擎执行过程 一

    1. Zend引擎主要包含两个核心部分:编译.执行: 执行阶段主要用到的数据结构: opcode: php代码编译产生的zend虚拟机可识别的指令,php7有173个opcode,定义在 zend_v ...

  8. zend studio php mvc,Zend Studio使用教程:使用Zend Studio和Zend Server进行根本原因分析 (一)...

    本教程通过解释如何使用Zend Studio的应用程序监视功能执行根本原因分析,演示Zend Studio和Zend Server如何紧密集成以促进更快的开发. 应用程序监视利用服务器在应用程序开发期 ...

  9. vue请求在退出页面还执行吗_如何用 Cloudbase Framework 部署一个 Vue 项目

    无需修改业务代码,就能将 Vue 应用前后端一键托管部署在云开发平台~ Cloudbase Framework 是云开发官方出品的前后端一体化部署工具.目前已经 开源 . 关于 Cloudbase F ...

最新文章

  1. android列表勾选框,android listview实现复选框列表
  2. Java.util包中常用的类
  3. 三种常见中文内码的转换方法
  4. 编译原理笔录(1)-编译程序基本构成
  5. 如何使用DotNet 2.0中的应用程序配置 Settings.settings
  6. 有十五个数按由大到小顺序存放在一个数组中_「图形化编程」前导知识-数组(一)...
  7. Redis的内存回收机制和数据过期淘汰策略
  8. 幼儿使用计算机亮度,使用夜灯会影响孩子的视力?真相究竟是什么
  9. Linq 三表 left join 的实现
  10. js动态添加多个元素
  11. Excel函数与公式
  12. UserWarning: Usage of dash-separated ‘script-dir‘ will not be supported in future versions. 笔记
  13. dubbo异常源码分析处理
  14. 计算机启动时蓝屏后自动重起,升级Win10系统之后一开机就蓝屏且电脑不断重启怎么解决?...
  15. 网络编程之端口与套接字
  16. 箕星药业任命罗万里任CEO;​赛诺菲成2024年巴黎奥运会和残奥会的高端合作伙伴 | 医药健闻...
  17. 太阳能电池板自动清洗机器人的制作分享
  18. REST Assured 2 - 用IDEA创建一个基本的REST Assured Maven项目
  19. C++:实现量化Libor市场模型测试实例
  20. A Game of Thrones(24)

热门文章

  1. Linux安装PHP报错Sorry, I cannot run apxs. Possible reasons follow:
  2. Linux解决编译Apache出现的问题:configure: error: APR not found
  3. 反思耗时任务异步处理
  4. Git的remote
  5. PHP面向对象基础总结
  6. android 修改菜单大小,如何在NavigationView中更改菜单项图标的大小?
  7. mysql 删除线程_mysql删除阻塞线程
  8. 一加7pro运动计步功能_测血压、心率、血氧、运动计步,来电微信消息等提醒,多种模式可选,这款智能手环功能实在是太全了吧!...
  9. springmvc执行流程(简述易懂)
  10. python查询mysql 乱码问题_python查询mysql中文乱码问题