• zend_controller


    引导文件index.php中使用

    Zend_Controller_Front::run('/path/to/app/controllers');

    来启动Zend_Controller_Front类,此类用于分配请求到的不同控制器(这是最简单的启动Zend_Controller的方法)。
    Zend_Controller_Router_Interface用来定义路由器

    前端控制器:
    前端控制器默认加载ErrorHandler插件以及ViewRenderer动作助手,若要禁用,在调用dispatch()之前使用:

    $front->setParam('noErrorHandler', true);
    $front->setParam('noViewRenderer', true);

    不充:也可以在控制器动作中通过$this->_helper->removeHelper('viewRenderer');禁用当前行为的viewRender。s

    方法:
    1、getInstance()
    获取前段控制器实例

    $front = Zend_Controller_Front::getInstance();

    2、setControllerDirectory()和addControllerDirectory()
    setControllerDirectory()通知分发起到哪查找动作控制器action controller类文件。参数接受单一路径和模块/路径对关联数组。

    $front->setControllerDirectory('../application/controllers');

    同时设置模块和路径

    $fromt->setControllerDirectory(array(
    'blog'=>'../module/blog/controllers',
    'news'=>'../modules/news/controllers'
    ));

    增加一个'foo'模块路径

    $front->addControllerDirectory('../modules/fo/controllers', 'foo');

    (使用addControllerDirectory时不带模块名,default设定为默认目录)
    getContrllerDirectory()获取控制器目录的当前设置;返回一个模块/目录对关联数组
    完成前段控制器最繁重的工作。该方法带有可选的参数 请求对象和/或相应对象

    1 dispatch(Zend_Controller_Request_Abstract $request= null,Zend_Controller_Response_Abstract $response = null)

    run()

    Zend_Controller_Front::run($path)

    是静态方法,只有一个参数,就是指向包含控制器的目录的路径
    如果不要求定制前端控制器环境,run()是一个很方便的建立前段控制器环境的方法。

    Zend把路径信息标准化为小写,若想使用驼峰式的控制器和action命名规则,可以在url中使用'-'或'.'来分开,例如FooBarController::bazBatAction(),那么在url中链接时要用/foo-bar/baz-bat或/foo.bar/baz.bat。

    环境访问器方法
    resetInstance()方法清楚当前的所有设置
    (set|get)DefaultControllerName()可以为默认的控制器指定另一个名字(否则使用index),以及获取当前值
    (set|get)DefaultAction()
    (set|get)Request()指定分发过程中使用的请求类或对象,以及获取当前的请求对象。设置请求对象时,可以传入一个请求类的名字,该方法将加载类文件夹并创建实例
    (set|get)BaseUrl()方法指定路由请求时剥离(strip)的基地址(base URL),以及获取当前值。这个值将在路由前提供给路由器。
    registerPlugin(Zend_Controller_Plugin_Abstract $plugin, $stackIndex = null)方法允许注册一个插件对象。通过设置可选参数$statckIndex,插件执行的顺序。
    unregisterPlugin($plugin)方法移除插件对象
    throwExceptions($flag)方法用来开启或者关闭分发过程中抛出异常的能力。默认一场引起并放置在响应对象中;开启throwExceptions()将覆盖这一行

     1 //创建一个controler实例
    2 $ctrl = Zend_Controller_Front::getInstance();
    3 //禁用ViewRenderer
    4 $ctrl->setParam('noViewRander', true);
    5
    6 $ctrl->throwExceptions(true);
    7 //创建controller控制器模块路径
    8 $ctrl->setControllerDirectory(array(
    9 'test'=>'application/test/controller',
    10 'default'=>'application/default/controller'
    11 ));
    12
    13 $ctrl->dispatch();
  • 相关阅读:
    12月上旬的一些记录
    11月底的记录
    备考 19号
    在android 中开发java.net.SocketException: socket failed: EACCES (Permission denied) 报错
    使用JAVA NIO实现的UDP client和server
    ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
    直接拿来用!最火的iOS开源项目(一)
    Anroid ListView分组和悬浮Header实现
    Android 联网监控抓包工具的制作(tcpdump的使用)
    Android tcpdump抓包应用实现
  • 原文地址:https://www.cnblogs.com/gbyukg/p/2181620.html
Copyright © 2020-2023  润新知