ZendFrameworkMVC的结构.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ZendFrameworkMVC的结构

 HYPERLINK /terryglp/articles/1775778.html Zend Framework MVC的结构 The Zend Framework MVC Architecture 一、概述: In this chapter, we will cover the following topics: 1. Zend framework MVC overview 2. The Front Controller 3. The router 4. The dispatcher 5. The Request object 6. The Response object ? 二、详细介绍: 1、Zend Framework MVC overview   1)了解请求(REQUEST)的产生与处理过程 一个请求被产生,一个相应的响应就被返回。上面这个流程就是发生在前端控制器(Front Controller)内部,这个过程常常是在前端控制器(Front Controller)调用dispatch()方法是触发的,这个过程可以分解为下列12个小步骤:   1. 一个请求Request的产生(创建了一个Request Object对象);   2. 路由事件routeStartup触发;   3. 路由器Router开始处理这个请求,从中获取请求信息;   4. 路由时间routeShutdown触发,路由过程结束;   5. 派遣事件dispatchLoopStartup被触发;     //派遣循环开始     6. 派遣preDispatch事件触发;     7. 派遣过程中调用动作控制器(Action Controller);     8. 动作控制器(Action Controller)将处理完成信息直接写入响应对象(Response Object);     9.派遣postDispatch时间被触发;     //派遣循环结束     10. 检测派遣标志,即检查是否还有动作没有完成,如果有再次进入派遣循环(第6步);      11. 派遣事件dispatchLoopShutdown被触发;   12. 产生的响应Response被返回。 ? ? 2、 The Front Controller--------前端控制器    1)介绍:前端控制器是MVC组建中的苦力,因为它要实例化对象、触发事件、建立默认的行为等,它的主要目的是处理所有进入应用的请求。前端控制器的设计模式被应用于不同的MVC框架中,我们在Zend Framework中指代的前端控制器(Front Controller)实际上是指Zend_Controller_Front类,因为该类实现了前端控制器的模式;另一定注意的是,前端控制器设计是单例模式(Singleton),这也就意味着它实现了单例设计模式,也就是仅仅只能有一个实例化的前端控制器,即我们不能直接实例化Front Controller,而是拿取一个: $front = Zend_Controller_Front::getInstance();   ?? 2)默认情况下,Front Controller负责实例化很多对象,并且是针对WEB应用的,即这些对象都是默认指定在HTTP环境下被实例化出来的,例如下表: 这个表显示出了创建对象的类型,抽象类abstract class是被用于实体类concrete class继承,实体类是被前端控制器调用并实例化使用的!!插件经纪人有些特别因为它与运行环境无关,即在HTTP环境下和在CLI环境下是一样的。默认情况下前端控制器有2个插件可用:a.Zend_Controller_Plugin_ErrorHandler; b.Zend_Controller_Plugin_ActionStack.错误插件ErrorHandler默认是被注册的,可以通过前端控制器设置其参数noErrorHandler来取消: $front-setParam(noErrorHandler,true); Stack index是用于插件的调用时机,它越大这个插件就将在越后面执行! 默认情况下,前端控制器Front Controller也利用动作助手经济人(Action Helper Broker)注册了ViewRenderer Action Helper,我们可以通过noViewRenderer参数来禁止它: $front-setparam(noViewRenderer,true);     3)使用前端控制器       [A]调用参数         调用参数可以被用于存储数据在前端控制器中,然后被传递到Action Controller、Router、Dispatc

您可能关注的文档

文档评论(0)

zhanghc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档