欢迎来到天天文库
浏览记录
ID:36315935
大小:406.81 KB
页数:40页
时间:2019-05-09
《mvc控制器(zendcontroller)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章MVC控制器(Zend_Controller)MVC控制器Zend_Controller组件是ZendFramework中实现MVC模式的灵魂。它是ZendFramework的MVC体系中最核心的部分。本章来介绍Zend_Controller组件的使用。通过本章内容,读者对于如何使用Zend_Controller控制器以及使用ZendFramework编写MVC模式的程序会有一个深刻的认识。3.1Zend_Controller入门Zend_Controller是ZendFramework的MVC体系的核心部分。MVC指Model-View-Controller,
2、是一个用于分离应用逻辑和表现逻辑的设计模式。Zend_Controller组件中的Zend_Controller_Front(前端)类实现了前端控制器设计模式。在该种设计模式下所有的请求都通过前端控制器(frontcontroller)并分发(dispatch)到不同的控制器来处理,分发的过程基于请求的URL。Zend_Controller体系具有可扩展性,可以通过继承已有的类或者自己写个新的类来实现各种接口和抽象类,也可以编写插件或者助手类(helper)来增强系统的功能。3.1.1目录结构使用Zend_Controller进行MVC编程,需要使用特定的目录结构。3
3、.1.2创建入口程序使用Zend_Controller进行MVC编程,首先需要创建一个Bootstrap。所谓Bootstrap,就相当于一小段引导程序或者入口程序。在ZeneFramework中,通常指index.php。因为所有的请求都是从index.php进入的。在设置好.htaccess文件之后,建立一个新的文件index.php,并输入以下代码。
4、文件,目的在于启动Zend_Controller_Front。Zend_Controller_Front,用于分配请求到不同的控制器。3.1.3创建默认的控制器在讨论控制器之前,应该先理解ZendFramework是如何处理HTTP请求的。默认情况下,URL的第一个部分会映射到一个控制器,第二个部分则映射到控制器类中的Action(即控制器类内部的一个方法)。3.1.4创建视图文件上一小节介绍默认控制器时曾经介绍过,视图脚本(即模板文件)放在application/views/scripts/目录下,而默认的模板是application/views/scripts/i
5、ndex/index.phtml。3.2Zend_Controller基础Zend_Controller工作流用若干组件来实现。在实际编程过程中不需要完全理解所有组件的工作机制,但简要了解其工作流程也是很有必要的。Zend_Controller工作流程包括以下几类组件。1.Zend_Controller_Front(控制器前端)2.Zend_Controller_Request_Abstract(控制器请求抽象类)3.Zend_Controller_Router_Interface4.Zend_Controller_Dispatcher_Interface5.Zend
6、_Controller_Action6.Zend_Controller_Response_Abstract3.3前端控制器Zend_Controller_Front实现了模型-视图-控制器(MVC)应用程序的前端控制器模式。目的在于初始化请求环境,并接收路由到来的请求,接着分发任何发现的动作;收集所有的响应,在整个过程完成时将响应内容返回。Zend_Controller_Front也实现了单件(Singleton)模式,意味着任何时候,都只可能有一个有效实例。这使得它可以作为注册表,供分发过程中的其他对象引用。Zend_Controller_Front自己注册了一个插
7、件经纪人类(pluginbroker),允许插件观测它所触发的各种事件。大多数情况下,这将使得开发人员有机会裁剪站点的分发过程,而无需通过扩展前端控制器增加功能。前端控制器至少需要一个或多个包含动作控制器的目录的路径来完成工作。还有大量的方法可供其调用,进一步处理前端控制器以及相应的助手类。3.3.1常用方法前端控制器有很多建立其环境的访问器。但是,有三个是开启前端控制器功能的主要方法:getInstance()方法、setControllerDirectory()和addControllerDirectory()方法、dispatch()方法,下面
此文档下载收益归作者所有