zend resource

ZF1.8中引进了资源插件的定义,它能够是程序不必修改bootstrap类便可自动运行附加的一些初始化类
资源是由Zend_Application读取,并且在application.ini中配置或直接写在Bootsrap.php类中。
在Bootstrap.php中定义资源

protected function _initDoctype()
{
/**
* 通过向boostrap方法中传递'view'来调用系统自带view资源
*/
$this->bootstrap('view');
/**
* 通过调用getResource()方法获取指定资源
*/
$view = $this->getResource('view');
$view->doctype('XHTML1_STRICT');
}

上面的代码展示了如何定义一个简单的资源,其中Doctype为资源名,在Bootstrpa.php类中,所有以_init开头的protected方法都会别识别为资源方法,在程序初始化的时候会别自动执行。
通过application.ini配置文件定义资源
同时还可以通过配置文件定义资源,如通过下面代码配置db

resources.db.adapter = "pdo_mysql"
resources
.db.params.host = "localhost"
resources
.db.params.username = "root"
resources
.db.params.password = ""
resources
.db.params.dbname = "test"
resources
.db.isDefaultTableAdapter = true

定义自己的资源类

class MyResource_Custom extends Zend_Application_Resource_ResourceAbstract
{
/**
* 通过配置文件,自动载入MyResource_Custom类
* init方法会被自动调用
*
* @return object view
*/
public function init()
{
$this->getBootstrap()->bootstrap('view');
//通过向$bootstrap->getResource()方法传递的参数获取指定资源
$view = $this->getBootstrap()->getResource('view');
$view->doctype('XHTML1_STRICT');
return $view;
}
}

通过继承Zend_Application_Resource_ResourceAbstract方法实现
init方法初始化并返回自定义的资源,返回的对象将会被自动存储起来,可以通过$bootstrap->getResource()方法来获取。
为了使新创建的资源生效,需要修改配置文件

;将libray/MyResource文件夹附加到插件查找路径中
pluginPaths
.MyResource = "MyResource"
;使custom插件可用
resources
.custom = true

如果资源不需要参数,则可以简单的写成resource.resourceName=true

原文地址:https://www.cnblogs.com/gbyukg/p/2156731.html