千家信息网

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

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章主要介绍Zend Framework如何创建自己的动作助手,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:助手的抽象基类是Zend_Controller_Act
千家信息网最后更新 2025年02月08日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安全错误 数据库的锁怎样保障安全 上海万户网络技术有限公司 如果设置了网络安全模式 显示所有数据库表的页面 软件开发广告怎么打 两江新区顺铭达软件开发工作室 windows云服务器卡吗 数据库技术与应用第五章答案 超级人类加速什么服务器 要什么能力才能做软件开发公司 工信部汽车网络安全 山东网络安全王玮 上海计算机三级网络技术 第五代移动通信网络技术是5g吗 飞译网络技术有限公司 延庆区技术软件开发质量保障 历届双色球开奖结果数据库 网络安全责任服务新模式 四叶草网络技术有限公司 网络安全保密教育会 隧道连接数据库查询 网络安全和法律专业就业前景 失落的方舟个服务器名称 目前软件开发哪种吃香 学校怎么检查小学生网络安全 怎么返回数据库选中表格 教学互动软件开发 对附加数据库失败 将域名解析到服务器 前端和数据库数据库 数据库跨库连接
0