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 相关文章推荐
oracle资料库函式库
Oct 09 PHP
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 PHP
使用php实现截取指定长度
Aug 06 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
php限制ip地址范围的方法
Mar 31 PHP
php解析字符串里所有URL地址的方法
Apr 03 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
Zend Framework入门知识点小结
Mar 19 PHP
php获取当前url地址的方法小结
Jan 10 PHP
thinkPHP框架中执行原生SQL语句的方法
Oct 25 PHP
PHP大文件分割分片上传实现代码
Dec 09 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
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
php常用的url处理函数总结
2014/11/19 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
javascript 事件处理程序介绍
2012/06/27 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
图解js图片轮播效果
2015/12/20 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
Python函数学习笔记
2008/10/07 Python
浅析Python中的多条件排序实现
2016/06/07 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
西班牙手机之家:Phone House
2018/10/18 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
中专毕业生自我鉴定
2014/02/02 职场文书
四查四看剖析材料
2014/02/14 职场文书
销售类求职信
2014/06/13 职场文书
应聘教师求职信
2014/07/19 职场文书
党员民主评议个人总结
2014/10/20 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
vue使用watch监听属性变化
2022/04/30 Vue.js
tomcat下部署jenkins的方法
2022/05/06 Servers
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS