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

作者:coder 时间:2023-11-06 02:49:50 

本文实例讲述了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

MethodReturn ValueParametersDescription
__construct($options = null)Void
  • :可选. 配置资源.

 

setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap)Zend_Application_Resource_Resource
  • :必填. 初始化资源的父引导类

 

getBootstrap()Zend_Application_Bootstrap_BootstrapperN/A


     

setOptions(array $options)Zend_Application_Resource_Resource
  • :必填. 配置选项.

 

getOptions()ArrayN/A

 

init()MixedN/A

采用策略模式: 运行,初始化资源.


Zend_Application_Resource_ResourceAbstract

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

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

Zend_Application_Resource_ResourceAbstract Methods

MethodReturn ValueParametersDescription
__construct($options = null)Void
  • :可选. 配置资源

 

setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap)Zend_Application_Resource_ResourceAbstract
  • :必填.  

 

getBootstrap()Zend_Application_Bootstrap_BootstrapperN/A

 

setOptions(array $options)Zend_Application_Resource_ResourceAbstract
  • :必填.  

 

getOptions()ArrayN/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程序设计有所帮助。

标签:Zend,Framework,资源,Resources
0
投稿

猜你喜欢

  • CentOS7环境下源码安装MySQL5.7的方法

    2024-01-26 04:38:56
  • Go实现用户每日限额的方法(例一天只能领三次福利)

    2024-05-22 10:20:09
  • RSA加密解密算法 asp源码

    2009-08-28 13:10:00
  • webpack css加载和图片加载的方法示例

    2024-04-22 13:02:13
  • Python爬虫获取整个站点中的所有外部链接代码示例

    2021-03-01 09:52:39
  • Git基础学习之tag标签操作详解

    2023-01-01 08:27:20
  • Python .format()函数使用方法详解

    2022-10-12 04:18:12
  • 出现“不能执行已释放的Script代码”错误的原因及解决办法

    2024-04-19 10:02:13
  • Django如何使用asyncio协程和ThreadPoolExecutor多线程

    2022-06-22 11:43:34
  • 开启SQLSERVER数据库缓存依赖优化网站性能

    2024-01-26 18:05:20
  • 常用的JavaScript表单验证正则表达式收集

    2008-02-29 08:34:00
  • 图文详解Go中的channel

    2024-04-26 17:17:11
  • SQLServer中数据库文件的存放方式,文件和文件组

    2024-01-25 21:38:25
  • MySQL 数值类型概述int smallint tinyint

    2010-11-02 11:46:00
  • mysql怎么设置最大连接数详解

    2024-01-24 04:44:55
  • 如何使用Python在2秒内评估国际象棋位置详解

    2023-08-10 14:26:46
  • Python使用django搭建web开发环境

    2021-02-21 06:37:32
  • 了解不常见但是实用的Python技巧

    2022-10-12 09:07:35
  • numpy 声明空数组详解

    2022-09-20 15:29:44
  • javascript demo 基本技巧

    2024-04-29 13:24:45
  • asp之家 网络编程 m.aspxhome.com