千家信息网

Zend Framework如何创建自己的动作助手

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍Zend Framework如何创建自己的动作助手,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:助手的抽象基类是Zend_Controller_Act
千家信息网最后更新 2026年10月31日Zend Framework如何创建自己的动作助手

这篇文章主要介绍Zend Framework如何创建自己的动作助手,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体如下:

助手的抽象基类是Zend_Controller_Action_Helper_Abstract,如要定义自己的助手,需要继承此类。

类的源代码如下:

_actionController = $actionController;    return $this;  }  /**   * Retrieve current action controller   *   * @return Zend_Controller_Action   */  public function getActionController()  {    return $this->_actionController;  }  /**   * Retrieve front controller instance   *   * @return Zend_Controller_Front   */  public function getFrontController()  {    return Zend_Controller_Front::getInstance();  }  /**   * Hook into action controller initialization   *   * @return void   */  public function init()  {  }  /**   * Hook into action controller preDispatch() workflow   *   * @return void   */  public function preDispatch()  {  }  /**   * Hook into action controller postDispatch() workflow   *   * @return void   */  public function postDispatch()  {  }  /**   * getRequest() -   *   * @return Zend_Controller_Request_Abstract $request   */  public function getRequest()  {    $controller = $this->getActionController();    if (null === $controller) {      $controller = $this->getFrontController();    }    return $controller->getRequest();  }  /**   * getResponse() -   *   * @return Zend_Controller_Response_Abstract $response   */  public function getResponse()  {    $controller = $this->getActionController();    if (null === $controller) {      $controller = $this->getFrontController();    }    return $controller->getResponse();  }  /**   * getName()   *   * @return string   */  public function getName()  {    $fullClassName = get_class($this);    if (strpos($fullClassName, '_') !== false) {      $helperName = strrchr($fullClassName, '_');      return ltrim($helperName, '_');    } elseif (strpos($fullClassName, '\\') !== false) {      $helperName = strrchr($fullClassName, '\\');      return ltrim($helperName, '\\');    } else {      return $fullClassName;    }  }}

助手基类提供的常用方法如下:

setActionController() 用来设置当前的动作控制器。
init(),该方法在实例化时由助手经纪人触发,可用来触发助手的初始化过程;
动作链中多个控制器使用相同的助手时,如要恢复状态时将十分有用。
preDispatch()分发动作之前触发。
postDispatch()分发过程结束时触发--即使preDispatch()插件已经跳过了该动作。清理时大量使用。
getRequest() 获取当前的请求对象。
getResponse() 获取当前的响应对象。
getName() 获取助手名。获取了下划线后面的类名部分,没有下划线则获取类的全名。

例如,如果类名为Zend_Controller_Action_Helper_Redirector,他将返回 Redirector,如果类名为FooMessage,将会返回全名。

举例说明自定义动作助手类

作用:解析传入的网址,返回各个部分。使用parse_url解析指定的网址。
用zendstudio新建一个zend framework项目helper_demo1。

新增文件:/helper_demo1/library/Application/Controller/Action/Helpers/UrlParser.php

修改文件:/helper_demo1/application/Bootstrap.php

registerNamespace(array('Application_'));  }  protected function _initActionHelpers() {    //用前缀形式    //Zend_Controller_Action_HelperBroker::addPrefix('Application_Controller_Action_Helpers');    //指定目录和前缀    //Zend_Controller_Action_HelperBroker::addPath('/www/helper_demo1/library/Application/Controller/Action/Helpers',    //                  'Application_Controller_Action_Helpers');    //new一个助手类传入    Zend_Controller_Action_HelperBroker::addHelper(new Application_Controller_Action_Helpers_UrlParser);  }}

修改测试action:/helper_demo1/application/controllers/IndexController.php

_helper->getHelper('UrlParser');  var_dump($urlParser->parse('https://www.jb51.net/article/80479.htm'));  }}

需要注意的就是什么是助手类的前缀,助手类的名称以及助手的路径。

以上是"Zend Framework如何创建自己的动作助手"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

助手 动作 前缀 下划线 全名 内容 对象 控制器 文件 方法 篇文章 网址 过程 部分 控制 相同 价值 作用 兴趣 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技官网 美国互联网科技巨头监管 西安互联网科技 北京禾田雨橡互联网科技 齐家互联网科技有限公司 北京华百购互联网科技有限公司 互联网金融科技公司干啥的 河南猎农互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 青海科技产业互联网发展 健康食品互联网创新科技园项目 浙南科技城互联网大厦建设工程 互联网金融科技名词解释 黑云互联网科技有限公司 半导体是互联网高科技吗 下一代互联网重大应用科技园 35岁以上互联网科技行业 福建互联网展示科技馆设计 互联网科技机房 互联网金融金融科技 科技互联网公司装修 互联网与科技发展 高科技与互联网 互联网科技的英文 互联网科技汛 海南购全球互联网科技 广西拼得多互联网科技有限公司 上海宁丞科技互联网 华夏恒生互联网科技013171 广东鹅鹅鹅互联网科技有限公司
0