This article explains the usage of resources in Zend Framework tutorial with examples. Share it with everyone for your reference, the details are as follows:
Zend_Application_Resource_Resource
Zend_Application_Bootstrap_ResourceBootstrapper is the interface used by the boot class loading registration resource plug-in.
Zend_Application_Resource_Resource is a resource plug-in interface.
Zend_Application_Resource_Resource is usually used in bootstrap classes that implement Zend_Application_Bootstrap_ResourceBootstrapper.
The resource plug-in is a configurable, preloaded and interface that can initialize resources through the strategy pattern.
Zend_Application_Resource_Resource Interface
Method | Return Value | Parameters | Description |
---|---|---|---|
__construct($options = null) | Void |
|
|
setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap) | Zend_Application_Resource_Resource |
|
|
getBootstrap() | Zend_Application_Bootstrap_Bootstrapper | N/A |
|
setOptions(array $options) | Zend_Application_Resource_Resource |
|
|
getOptions() | Array | N/A |
|
init() | Mixed | N/A |
Adopt strategy mode: run, initialize resources. |
Zend_Application_Resource_ResourceAbstract is an abstract class that implements the Zend_Application_Resource_Resource interface and provides a convenient way to create custom plug-in resources.
Note: This abstract class does not implement the init() method. You can inherit and use this abstract class to customize the init method.
Zend_Application_Resource_ResourceAbstract Methods
Method | Return Value | Parameters | Description |
---|---|---|---|
__construct($options = null) | Void |
|
|
setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap) | Zend_Application_Resource_ResourceAbstract |
|
|
getBootstrap() | Zend_Application_Bootstrap_Bootstrapper | N/A |
|
setOptions(array $options) | Zend_Application_Resource_ResourceAbstract |
|
|
getOptions() | Array | N/A |
|
When registering plugin resources, one question that arises is how you should bootstrap the class from the parent. There are three different mechanisms that can be used, depending on how you configure the boot and its plugin resources.
First, if your plugin name definitions contain prefixed paths, you can pass them by their "short name" - i.e. part of the class name. For example, the short name of class "Zend_Application_Resource_View" is "View" if the prefix path "Zend_Application_Resource" is registered. You may register classes using their full name or short name:
$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(), ), ));
The short name can be used later to bootstrap resources and get:
$bootstrap->bootstrap('view'); $view = $bootstrap->getResource('view');
Secondly, if there is no matching plugin path defined, you might still pass it by using the full name of the resource class. In this case, you can use the full class name of the resource as follows:
$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(), ), ));
Guide resources and how to obtain them
$bootstrap->bootstrap('My_Resource_View'); $view = $bootstrap->getResource('My_Resource_View');
This brings us to the third option. You can register yourself as a given resource class by specifying an explicit name. This can be done by adding a public $_explicitType string value to the resource plugin class, which will be used to specify the bootstrap plugin resource. As an example, let's define our own view class:
class My_Resource_View extends Zend_Application_Resource_ResourceAbstract { public $_explicitType = 'My_View'; public function init() { // do some initialization... } }
We can then bootstrap the resource or get it by its name "My_View":
$bootstrap->bootstrap('My_View'); $view = $bootstrap->getResource('My_View');
You can use these different naming methods, overwrite existing resources, add your own, mix multiple resources to achieve complex initialization, and more.
Readers who are interested in more zend-related content can check out the special topics of this site: "Zend FrameWork Framework Introductory Tutorial", "php Excellent Development Framework Summary", "Yii Framework Introduction and Summary of Common Techniques", "ThinkPHP Introductory Tutorial" , "php object-oriented programming introductory tutorial", "php mysql database operation introductory tutorial" and "php common database operation skills summary"
I hope this article will be helpful to everyone in PHP programming.