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

(0)

相关推荐

  • 解析zend Framework如何自动加载类

    1.模块中类的自动载入 复制代码 代码如下: $loader = new Zend_Application_Module_Autoloader(array(   //模块内容自动加载类    'namespace' => 'Blog',//命名空间定义 即方法的开头为Blog_    'basePath'  => APPLICATION_PATH . '/modules/blog',//模块位置)); 2. 自动载入 复制代码 代码如下: require_once 'Zend/Loader/A

  • zend framework配置操作数据库实例分析

    zendframework项目环境搭建后,看了下zend framework配置操作数据库,php教程如下: 在application/configs的文件下建立一个config.ini文件 配置信息如下: [general] db.adapter=PDO_MYSQL db.config.host=localhost/IParess db.config.username=username db.config.password=password db.config.dbname=databasen

  • 非常好用的Zend Framework分页类

    在这里和大家分享一个非常好用的 Zend Framework 分页类   具体效果可见本站的分页效果, CSS样式可根据个人设计感进行更变. 这里我会举例演示如何使用该类, 如下:   IndexController.php, 在 Action 中写入如下代码: 复制代码 代码如下: protected  $_curPage = 1;      //默认第一页 const PERPAGENUM     = 4;      //每页显示条目数   public function indexActi

  • zend framework文件上传功能实例代码

    复制代码 代码如下: //实例化上传类$upload = new Zend_File_Transfer();//设置过滤器,大小限制为5M,格式为jpg,gif,png$upload->addValidator('Size', false, 5 * 1024 * 1024);$upload->addValidator('Extension', false, 'jpg,gif,png');if (!$upload->isValid()) {    print '文件大小或格式不符合';  

  • 解析如何使用Zend Framework 连接数据库

    复制代码 代码如下: $db = Zend_Db::factory('Pdo_Mysql', array(                               'host'     => '127.0.0.1',                               'username' => 'root',                               'password' => '123456',                              

  • windows下zendframework项目环境搭建(通过命令行配置)

    1.首先你要确定你的PHP版本不低于5.1.4,但强烈建议使用 5.2.3 或更高版本 2.确保你的php.ini开启了如下模块: extension=php_pdo.dllextension=php_pdo_mysql.dll 3.打开Apache的配置文件httpd.conf确保你已经开启如下模块: LoadModule rewrite_module modules/mod_rewrite.so 继续查找httpd.conf文件,如果AllowOverride为None的话,请一定把None

  • Zend Framework上传文件重命名的实现方法

    本文实例讲述了Zend Framework上传文件重命名的实现方法.分享给大家供大家参考,具体如下: 1. Zend Framework文件上传重命名 //实例化文件上专类 $fName=$this->_request->getPost('fName'); $adapter = new Zend_File_Transfer_Adapter_Http(); //存放上传文件的文件夹 $adapter->setDestination('/opt/lampp/htdocs/blog/uploa

  • Zend Framework实现多文件上传功能实例

    本文实例讲述了Zend Framework实现多文件上传功能的方法.分享给大家供大家参考,具体如下: 第一步:在我们原来教程找到library文件夹..这里原来是存放我们Zend类库文件夹的地方..现在我们在library文件夹里加上如下几个文件夹:library/Custom/Controller/Plugin/ 文件夹我们加入完成.这时候我们就要找到我们的文件上传的类文件了..这里我命名为Upload.php文件名..这个文件就是我们将要用到文件上传的的类文件.当然这文件我是改写成了Zend

  • 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会创建

  • Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析

    本文实例讲述了Zend Framework框架Zend_Db_Table_Rowset用法.分享给大家供大家参考,具体如下: 1. 简介 Zend_Db_Table_Rowset是 Zend_Db_Table_Row对象集合的迭代器.通常来说,你不可以自己实例化Zend_Db_Table_Rowset, 而是通过调用Zend_Db_Table::find()方法或者fetchAll()方法将Zend_Db_Table_Rowset作为 结果数据返回过来.接下来就可以遍历Zend_Db_Table

  • Zend Framework入门应用实例详解

    本文实例讲述了Zend Framework入门应用.分享给大家供大家参考,具体如下: .htaccess文件 .htaccess文件用来实现URL重置,即当用户访问某资源时,会将其重新定位到指定的文件下. 代码示例: RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php 其中,行1表示重置引擎打开,行2表示当访问除js.ico.gif.jpg.png.css以外的文件时, 都将被重置到index.php文件下. 注

  • Zend Framework 2.0事件管理器(The EventManager)入门教程

    概述 EventManger是一个为以下使用情况设计的组件: 复制代码 代码如下: 实现简单的主题/观察者模式 实现面向切面的设计 实现事件驱动的架构 基本的架构允许你添加和解除指定事件的侦听器,无论是在一个实例基础还是一个共享的集合:触发事件:终止侦听器的执行. 快速入门 通常,你将会在一个类中创建一个EventManager. 复制代码 代码如下: use Zend\EventManager\EventManagerInterface; use Zend\EventManager\Event

  • Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解

    本文实例讲述了Zend Framework教程之请求对象的封装Zend_Controller_Request方法.分享给大家供大家参考,具体如下: 概述 请求对象是在前端控制器,路由器,分发器,以及控制类间传递的简单值对象.请求对象封装了请求的模块,控制器,动作以及可选的参数,还包括其他的请求环境,如HTTP,CLI,PHP-GTK. 请求对象的基本实现 ├── Request │   ├── Abstract.php │   ├── Apache404.php │   ├── Exceptio

  • Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)

    本文实例讲述了Zend Framework入门之环境配置及第一个Hello World程序.分享给大家供大家参考,具体如下: 第一步:确认你的PHP环境: 1.请PHPer确认你的PHP版本是否在5.2.0以上..如果不是的话..请更新到5.2.0,否则.Zend Framework 好像用不了..我自己有试过. 遇到过这样的问题..所以请你们自己测试一下..PHP源码最新版下载地址为:http://www.php.net/downloads.php. 2.你的PHP环境配置好了之后,请打开ph

  • Spring MVC 处理一个请求的流程

    一个请求从客户端发出到达服务器,然后被处理的整个过程其实是非常复杂的.本博客主要介绍请求到达服务器被核心组件DispatcherServlet处理的整理流程(不包括Filter的处理流程). 1. 处理流程分析 Servlet处理一个请求时会调用service()方法,所以DispatcherServlet处理请求的方式也是从service()方法开始(debug的话建议从DispatcherServlet的service方法开始debug).FrameworkServlet重写了HttpSer

  • ASP.Net 请求响应流程简述

    一.浏览器请求页面的简单流程 当浏览器请求静态页面时,会发送请求给服务器软件,服务器软件直接去找对应的静态页面,并返回给浏览器. 当浏览器请求动态页面时,服务器软件收到请求,发现处理不了.aspx文件,就去映射表当中根据后缀名找对应的处理程序(aspnet_isapi.dll),这个处理程序实现了服务器软件提供的接口,即服务器软件通过接口调用了这个处理程序当中的方法.aspnet_isapi.dll会将请求转交给.Net Framework,由它处理动态页面,创建页面对象,生成相应报文,响应给浏

  • Zend Framework开发入门经典教程

    本文讲述了Zend Framework开发入门相关知识点.分享给大家供大家参考,具体如下: Zend Framework发布了!虽然仍处于开发初期,这个教程仍突出讲解目前几个最好的功能,并指导你完成一个简单程序的构建. Zend最早在社区里发布了ZF.基于同样的想法,这个教程写来用于展示ZF现有的功能.由于这个教程是在线发布,我将在ZF变化时对其进行更新,以便尽可能有效. 要求 Zend Framework要求PHP5.为了更好利用本教程的代码,你还需要Apache网页服务器.因为示范程序(一个

  • Zend Framework+smarty用法实例详解

    本文实例讲述了Zend Framework+smarty用法.分享给大家供大家参考,具体如下: 一.Zend Framework简介 Zend Framework使用模型-视图-控制器(Model-View-Controller(MVC))结构.这个用来把你的程序分离成不同部分使得开发和维护变得容易. 运行Zend Framework需要:PHP 5.1.4 (或更高) .Web 服务器支持 mod_rewrite功能,本实例采用Apache. 从这里http://framework.zend.

随机推荐