Home  >  Article  >  Backend Development  >  Resource Autoloading usage example of Zend Framework tutorial, zendautoloading_PHP tutorial

Resource Autoloading usage example of Zend Framework tutorial, zendautoloading_PHP tutorial

WBOY
WBOYOriginal
2016-07-12 08:57:47813browse

Resource Autoloading usage example in Zend Framework tutorial, zendautoloading

This article describes the usage of Resource Autoloading in Zend Framework. Share it with everyone for your reference, the details are as follows:

Often, when developing applications, it is possible that the class file name cannot be defined as per the standard Zend Framework recommendations, which means that your class file cannot be discovered by the autoloader. Zend_Loader_Autoloader_Resource provides the solution.

A resource is just a name corresponding to a component's namespace (namespace appended to the autoloader) and path (relative to the base path of the autoloader). For example, it can be like this:

$loader = new Zend_Application_Module_Autoloader(array(
  'namespace' => 'Blog',
  'basePath' => APPLICATION_PATH . '/modules/blog',
));

Specific examples are as follows:

path/to/some/resources/
|-- forms/
| `-- Guestbook.php // Foo_Form_Guestbook
|-- models/
| |-- DbTable/
| | | `-- Guestbook.php // Foo_Model_DbTable_Guestbook
| |-- Guestbook.php // Foo_Model_Guestbook
| `-- GuestbookMapper.php // Foo_Model_GuestbookMapper

Create resource loader:

$loader = new Zend_Loader_Autoloader_Resource(array(
  'basePath' => 'path/to/some/resources/',
  'namespace' => 'Foo',
));

Define resource types

Zend_Loader_Autoloader_Resourse::addResourceType() has three parameters: resource name, relative resource path name of the specified resource path, and resource type component prefix.

In the tree above, we have three resource types: form (in the subdirectory forms, the resource prefix is ​​Form), model (in the subdirectory models, the resource prefix is ​​Model), and dbtable (in the subdirectory "models" /DbTable", the resource prefix is ​​"Model_DbTable").

The specific definition is as follows:

$loader->addResourceType('form', 'forms', 'Form')
    ->addResourceType('model', 'models', 'Model')
    ->addResourceType('dbtable', 'models/DbTable', 'Model_DbTable');

You can also specify

in the constructor
$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
  'basePath'   => 'path/to/some/directory',
  'namespace'   => 'My',
  'resourceTypes' => array(
    'acl' => array(
      'path'   => 'acls/',
      'namespace' => 'Acl',
    ),
    'form' => array(
      'path'   => 'forms/',
      'namespace' => 'Form',
    ),
    'model' => array(
      'path'   => 'models/',
      'namespace' => 'Model',
    ),
  ),
));

Use to define resources

$form   = new Foo_Form_Guestbook();
$guestbook = new Foo_Model_Guestbook();

Resources in modules are automatically loaded

Zend Framework's MVC encourages the use of "modules". Modules usually have some resource types by default. Zend Framework provides a standard directory layout for modules. In this paradigm, resource autoloaders are very useful and they are enabled by default.

Basic directory structure of the module:

d2397dd86d29a9a1cff681f5f46c559c
configs/
application.ini
Controllers/
Helpers/
Forms/
layouts/
       filters/
Helpers/
        scripts/
models/
Services/
Views/
       filters/
Helpers/
        scripts/
Bootstrap.php

You can extend Zend_Application_Module_Bootstrap to create a module boot class Bootstrap.php. The specific resource loading is similar to the default resource loading.

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.

Articles you may be interested in:

  • Analysis of Controller Usage of MVC Framework in Zend Framework Tutorial
  • Zend Framework Tutorial Road explained in detail by function Zend_Controller_Router
  • Zend Framework tutorial: Detailed explanation of Zend_Controller_Plugin plug-in usage
  • Zend Framework tutorial: Detailed explanation of the encapsulation of the response object Zend_Controller_Response instance
  • Zend Framework tutorial: Detailed explanation of the encapsulation of the request object Zend_Controller_Request instance
  • Zend Framework tutorial Detailed explanation of the action's base class Zend_Controller_Action
  • Zend Framework tutorial's detailed explanation of the usage of the distributor Zend_Controller_Dispatcher
  • Zend Framework tutorial's detailed explanation of the usage of the front-end controller Zend_Controller_Front
  • Zend Framework tutorial's view component Detailed explanation of Zend_View usage
  • A simple example of model usage in Zend Framework tutorial
  • Detailed explanation of Autoloading usage in Zend Framework tutorial

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1106885.htmlTechArticleZend Framework Tutorial Resource Autoloading Usage Example, zendautoloading This example describes the usage of Resource Autoloading in Zend Framework. Share it with everyone for your reference, specifically...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn