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

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

时间: 2024-08-02 13:34:07

Zend framework处理一个http请求的流程的相关文章

【原创】Zend Framework 2框架之MVC

ZendFramework 2框架之MVC 作者:sys(360电商技术组) 1.前言 Zend Framework 2是zend官方推出的php开源框架,基于php5.3.他全然採用面向对象的代码实现,并利用了php5.3的一些新特性,比方命名空间.闭包等.由于是官方的推荐的,今天我们就来学习学习Zend Framework 2,由于本人知识浅薄,也没有实际的用Zend Framework 2做项目开发的经验.有错误的地方还请大家指正,也希望在后面的开发中能用用该框架,此篇文章权当抛砖引玉.

菜菜鸟Zend Framework 2 不完全学习涂鸦(四)-- 模块

菜菜鸟Zend Framework 2 不完全学习涂鸦(四)-- 模块 这是涂鸦的第四篇 模块(Modules) ZF2 是一个模块系统,而你需要在每个模块中组织你主要应用代码.由模板(skeleton)所提供的应用程序模块在整个应用程序中被用作引导(bootstrapping),错误(error)和路由设置(routing configuration).它经常被用作提供应用级别控制,例如,应用程序的首页.但是在这个教程中我们不使用默认的模块,我们将使用唱片列表来作为应用程序的首页. 我们将代码

Zend Framework 2中如何使用Service Manager

end Framework 2 使用ServiceManager(简称SM)来实现控制反转(IoC).有很多资料介绍了service managers的背景,我推荐大家看看this blog post from Evan和 this post from Reese Wilson,但是仍然有很多开发者不能够很好地使用ServiceManager去解决他们的需求.这篇文章我将解释为什么ZF2框架需要使用多个服务管理器以及怎样使用它们.主要包含以下几个方面: 这些不同的服务管理器是什么? 不同的服务管

使用LiveDocx和Zend Framework生成基于模板的文档

使用PHP生成打印良好的格式良好的PDF文档并非易事.传统上,使用PHP生成PDF有两种主要方法.如果有足够的时间和耐心,两者都可以完成工作,但仍然有很多不足之处: HTML-to-PDF:这种方法广泛用于主流应用程序.这里使用众多开源库之一以编程方式创建HTML文档并将其转换为PDF.但是,由于HTML不是面向页面的格式(如PDF),因此无法在HTML和PDF之间执行1对1映射.典型的文字处理文件格式功能,例如页眉和页脚,孤儿和寡妇甚至页码都不能用HTML表示. 程序化:此方法可以完全控制生成

zend framework多模块多Layout配置

转自: http://blog.csdn.net/a82168506/article/details/10228011 上次接触zend framework已经很久远了,10年的事情了.最近在做一个项目,时间不紧,就又把ZF拿出来折腾.而我发现以前做ZF的记忆已经在我脑中如梦幻泡影,消失无踪,为了配置多模块还又去查了资料,为了避免此种情况再次发生,做个记录吧. 首先,我们要新建一个ZF项目,目录结构如下. 我们想要配置多模块呢,首先要在,application下面建一个modules文件夹,然后

zend framework框架学习走起——从零开始,点击记录-安装

zend framework第一步,先来安装下zend framework框架. 先介绍下,我这边的php配置环境,为图省事,我是安装wampserver来搭载php环境的,,php+Apache+mysql一下子全部搞定.所以我们的zendframwok框架安装所在文件夹就是在wampserver的www文件夹下. 我们要先去下载下来zend framework框架. 进入zend framework官网,你可以直接下载zend framework框架,也可以和我一样,选择composer方式

Zend framework

Zend framework框架 开发web程序和服务,ZF采用MVC架构模式来分离应用程序下. PHP5面向对象描写:丰富完善的组件支持,Ajax支持 OOP MVC 环境需求和配置 php版本需要在5.2.0以上(Wamp) php需要开启PDO和PDO相关数据库引擎来运行ZF:extension=php_pdo.dll之前的分号去掉 Apache 开启rewrite_module模块,并开启.htaccess目录AllowOveride ALL ZF框架的搭配与调试:http://www.

zend framework学习笔记(windows下)

zend framework安装 下载地址:https://framework.zend.com/downloads/archives 修改php.ini文件,将library目录添加到include_path路径中 *如没有权限修改php.ini文件,可以创建.htaccess文件中,在文件中添加php_value include_path ".;library路径",将该文件放在服务器的文档根目录 配置 ①将 php.exe目录添加到系统环境变量中 将zend framework目

nginx的请求接收流程(一)

今年我们组计划写一本nginx模块开发以及原理解析方面的书,整本书是以open book的形式在网上会定时的更新,网址为http://tengine.taobao.org/book/index.html.本书分析的nginx源码版本为1.2.0,环境为linux,事件处理模型为epoll,大部分分析流程都基于以上假设.我会负责其中一些章节的编写,所以打算在这里写一系列我负责章节内容相关的文章(主要包括nginx各phase模块的开发,nginx请求的处理流程等).本篇文章主要会介绍nginx中请