Zend Framework教程之资源(Resources)用法实例详解


Posted in PHP onMarch 14, 2016

本文实例讲述了Zend Framework教程之资源(Resources)用法。分享给大家供大家参考,具体如下:

Zend_Application_Resource_Resource

Zend_Application_Bootstrap_ResourceBootstrapper是引导类加载注册资源插件使用的接口。
Zend_Application_Resource_Resource是一个资源插件接口。
Zend_Application_Resource_Resource通常被用于实现了Zend_Application_Bootstrap_ResourceBootstrapper的引导类中。

资源插件是一个可配置,预加载的和可以通过策略模式初始化资源的接口。

Zend_Application_Resource_Resource Interface

Method Return Value Parameters Description
__construct($options = null) Void $options:可选. 配置资源.  
setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap) Zend_Application_Resource_Resource $bootstrap:必填. 初始化资源的父引导类  
getBootstrap() Zend_Application_Bootstrap_Bootstrapper N/A
setOptions(array $options) Zend_Application_Resource_Resource $options:必填. 配置选项.  
getOptions() Array N/A  
init() Mixed N/A 采用策略模式: 运行,初始化资源.

Zend_Application_Resource_ResourceAbstract

Zend_Application_Resource_ResourceAbstract是一个抽象类,实现了Zend_Application_Resource_Resource接口,为创建自定义插件资源提供了一个便捷的方式。

注:这个抽象类没有实现init()方法,可以继承使用这个抽象类,自定义实现init方法。

Zend_Application_Resource_ResourceAbstract Methods

Method Return Value Parameters Description
__construct($options = null) Void $options:可选. 配置资源  
setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap) Zend_Application_Resource_ResourceAbstract $bootstrap:必填.    
getBootstrap() Zend_Application_Bootstrap_Bootstrapper N/A  
setOptions(array $options) Zend_Application_Resource_ResourceAbstract $options:必填.    
getOptions() Array N/A  

资源名称

注册插件资源时,出现的一个问题是你应该如何从父引导类。有三种不同的机制,可以使用,这取决于你是如何配置的引导和它的插件资源。

首先,如果你的插件名称定义包含前缀路径,您可以通过他们的“短名称” - 即类的名称的一部分。例如,类“Zend_Application_Resource_View”的短名称是“View”,如果前缀路径“Zend_Application_Resource”已注册。您可能使用类的全名或短名称注册他们:

$app = new Zend_Application(APPLICATION_ENV, array(
  'pluginPaths' => array(
    'My_Resource' => 'My/Resource/',
  ),
  'resources' => array(
    // if the following class exists:
    'My_Resource_View' => array(),
    // then this is equivalent:
    'View' => array(),
  ),
));

以后可以使用短名称引导资源和获取:

$bootstrap->bootstrap('view');
$view = $bootstrap->getResource('view');

其次,如果没有匹配的插件路径的定义,你可能仍然通过使用资源类的全名。在这种情况下,你可以参考如下使用资源的完整类名:

$app = new Zend_Application(APPLICATION_ENV, array(
  'resources' => array(
    // This will load the standard 'View' resource:
    'View' => array(),
    // While this loads a resource with a specific class name:
    'My_Resource_View' => array(),
  ),
));

引导资源以及获取方式

$bootstrap->bootstrap('My_Resource_View');
$view = $bootstrap->getResource('My_Resource_View');

这给我们带来了第三个选项。您可以指定一个明确的名称,将自己注册为一个给定的资源类。这可以通过资源插件类增加 public $_explicitType的字符串值,该值将被用来指定引导插件资源。作为一个例子,让我们来定义我们自己的视图类:

class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
{
  public $_explicitType = 'My_View';
  public function init()
  {
    // do some initialization...
  }
}

然后,我们可以引导资源或通过它的名字“My_View”获取:

$bootstrap->bootstrap('My_View');
$view = $bootstrap->getResource('My_View');

可以使用这些不同的命名方法,覆盖现有资源,添加您自己的,混合是i用多种资源,以实现复杂的初始化等等。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP base64+gzinflate压缩编码和解码代码
Oct 03 PHP
mysql 性能的检查和优化方法
Jun 21 PHP
PHP 简单数组排序实现代码
Aug 05 PHP
php将数据库中所有内容生成静态html文档的代码
Apr 12 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
php定时删除文件夹下文件(清理缓存文件)
Jan 23 PHP
Symfony页面的基本创建实例详解
Jan 26 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
php array_keys 返回数组的键名
Oct 25 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 PHP
在Laravel 中实现是否关注的示例
Oct 22 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 PHP
PHP访问数据库集群的方法小结
Mar 14 #PHP
php 无限级分类 获取顶级分类ID
Mar 13 #PHP
PHP实现文件上传与下载实例与总结
Mar 13 #PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
Mar 11 #PHP
PHP批量去除BOM头内容信息代码
Mar 11 #PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 #PHP
php实现无限级分类查询(递归、非递归)
Mar 10 #PHP
You might like
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
jQuery Selector选择器小结
2010/05/06 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
解决Layui 表格自适应高度的问题
2019/11/15 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
python操作MongoDB基础知识
2013/11/01 Python
浅谈Python中的闭包
2015/07/08 Python
OpenCV实现人脸识别
2017/04/07 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
一年级小学生评语
2014/04/22 职场文书
个人借款协议书范本
2014/11/17 职场文书
个人德育工作总结
2015/03/05 职场文书
结婚十年感言
2015/07/31 职场文书
迎国庆主题班会
2015/08/17 职场文书
环保建议书作文500字
2015/09/14 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB