zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    C 语言编程经典 100 例
    visual studio.net已检测到指定的web服务器运行的不是asp.net1.1版。无法运行asp.net web应用程序
    如何编译及运行java
    VBScript 函数集
    SQL SERVER定时作业的设置方法
    显示桌面按钮不小心被删,有什么办法找回?
    随机抽取n个记录的SQL
    打开项目时提示如下错误:Visual Studio .NET 无法创建应用程序 。问题很可能是因为本地 Web 服务器上没有安装所需的组件
    简单的数据库连接
    ASP中各种数据库连接代码
  • 原文地址:https://www.cnblogs.com/gbyukg/p/2181620.html
Copyright © 2011-2022 走看看