zend framework 自学便签

zend_front_controller
1、getInstance单例
1、setControllerDirectory(array(
'default'=>'../application/controllers',
))//设置控制器路径get...为获取
2、dispatch()
3、run()实际上是对前三个方法进行的封装只带一个控制器路径参数。如果不需要定制前端环境,run是最好的选择。

继承前端控制器,至少要覆盖getInstance方法。以保证以后返回的是子类的实例,该方法对于一些可替换的路由器和视图非常有用。通常情况下不用,除非增加新的功能(如一个插件自动加载器,或用一个方法来制定动作助手路径),需要改动的地方可能包括控制器目录的存储方式,使用默认路由以及分发器

zf的zend_controller_front自己注册了一个插件经纪人类,允许插件观测它所触发的各种事件。使开发者有就会裁剪站点的分发过程而无需通过扩展前端控制器增加功能

子类化请求对象,
所有的请求对象的基请求类是抽象类Zend_Controller_Request_Abstract
基本方法:getControllerName,setControllerName,getActionName,setActionName,getControllerKey,setControllerKey,getActionKey,setActionKey,getParam,setParam,getParams,setParams.setDispatched,isDispatched.

Zend_Controller_Request_Http允许在子目录中使用Zend_Controller_Route_Rewrite。

分发是取得请求对象,提取其中的模块名,控制器名,动作名以及可选参数,然后实例化控制器并调用其中动作的整个过程。Zend_Controller_Dispatcher_Standard类指定每个控制器的动作的默认值为index.可以通过setDefaultController(),setDefaultAction()和setDefualtMoudule()方法改变默认值的设定。

Zend_Controller_Dispatcher_Interface定义了下列所有分发器需要实现的方法formatcontrollername , formActionName($unformated); isDispatchable(Zend_Controller_Request_Abstract $request), setParam($name,$value), setParams($array), getParam,getParams, clearParams, setResponse(Zend_Controller_Response_Abstract $response=null),
getResponse(), addControllerDirectory($path, $args=null);setControllerDirectory($path), getControllerDirectory(), dispatch(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response); isValidModule($module);

但一般情况下只需简单滴扩展抽象类Zend_Controller_Dispatcher_Abstract, OR Zend_Controller_Dispatcher_Standard类基于标准分发器来修改功能。

动作控制器抽象类
Zend_Controller_Action


关于助手经纪人类的实例

访问请求对象Zend_Controller_Request_Http拥有访问请求url.路径信息,$GET $POST参数
//请求对象先被传入到前端控制器,若没有提供请求对象,它将在分发过程的开始,任何路由过程发生变化之前实例化
//这时,请求对象将被传递到分发链中的每个对象。

1、_forward()可以执行一个请求链。

??zf里的对象注册表有什么作用?具体点

原文地址:https://www.cnblogs.com/phplover/p/2974080.html