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 相关文章推荐
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
在php中取得image按钮传递的name值
Oct 09 PHP
php&java(一)
Oct 09 PHP
php 删除记录实现代码
Mar 12 PHP
php 信息采集程序代码
Mar 17 PHP
php递归创建目录的方法
Feb 02 PHP
php实现的验证码文件类实例
Jun 18 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
PHP面向对象程序设计方法实例详解
Dec 24 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
PHP的mysqli_stat()函数讲解
Jan 23 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
Oct 13 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脚本的10个技巧(3)
2006/10/09 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
JS删除数组元素的函数介绍
2013/03/27 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
python3.6数独问题的解决
2019/01/21 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
PHP数据运算类型都有哪些
2013/11/05 面试题
《纸船和风筝》教学反思
2014/02/15 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
男方婚前保证书
2015/02/28 职场文书
机关工会工作总结2015
2015/05/26 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
室外天线与收音机天线杆接合方法
2022/04/05 无线电