当前位置:首页 > CMS教程 > 其它CMS > 列表

Zend Framework教程之Resource Autoloading用法实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-13 20:51:39 浏览: 评论:0 

本文实例讲述了Zend Framework中Resource Autoloading用法,分享给大家供大家参考,具体如下:

通常,在开发应用程序中,可能类文件名不能按照标准Zend Framework的建议定义的,这意味着你的类文件不能被自动加载器发现。Zend_Loader_Autoloader_Resource提供了解决方案。

资源仅仅是一个名称对应一个组件的命名空间(追加到自动加载器的命名空间)和路径(相对的自动加载器的基本路径),例如可以这样:

  1. $loader = new Zend_Application_Module_Autoloader(array
  2.   'namespace' => 'Blog'
  3.   'basePath' => APPLICATION_PATH . '/modules/blog'
  4. )); 

具体实例如下:

path/to/some/resources/

  1. |-- forms/ 
  2. |   `-- Guestbook.php        // Foo_Form_Guestbook 
  3. |-- models/ 
  4. |   |-- DbTable/ 
  5. |   |   `-- Guestbook.php    // Foo_Model_DbTable_Guestbook 
  6. |   |-- Guestbook.php        // Foo_Model_Guestbook 
  7. |   `-- GuestbookMapper.php  // Foo_Model_GuestbookMapper 

创建资源装载器:

  1. $loader = new Zend_Loader_Autoloader_Resource(array
  2.   'basePath' => 'path/to/some/resources/'
  3.   'namespace' => 'Foo'
  4. )); 

定义资源类型

Zend_Loader_Autoloader_Resourse::addResourceType()有三个参数:资源名称,指定的资源路径的相对资源路径名, 资源类型组件前缀。

在上面的树,我们有三种资源类型:form(在子目录forms中,资源前缀是Form),model(在子目录models中,资源前缀是Model),并dbtable(在子目录“models/DbTable”中,资源前缀是“Model_DbTable”)。

具体定义如下:

  1. $loader->addResourceType('form''forms''Form'
  2.     ->addResourceType('model''models''Model'
  3.     ->addResourceType('dbtable''models/DbTable''Model_DbTable'); 

也可以在构造函数中指定

  1. $resourceLoader = new Zend_Loader_Autoloader_Resource(array
  2.   'basePath'   => 'path/to/some/directory'
  3.   'namespace'   => 'My'
  4.   'resourceTypes' => array
  5.     'acl' => array
  6.       'path'   => 'acls/'
  7.       'namespace' => 'Acl'
  8.     ), 
  9.     'form' => array
  10.       'path'   => 'forms/'
  11.       'namespace' => 'Form'
  12.     ), 
  13.     'model' => array
  14.       'path'   => 'models/'
  15.       'namespace' => 'Model'
  16.     ), 
  17.   ), 
  18. )); 

使用以定义资源

$form   = new Foo_Form_Guestbook();

$guestbook = new Foo_Model_Guestbook();

模块中的资源自动加载

Zend Framework的MVC鼓励使用“modules”,模块默认情况下,通常有一些资源类型,Zend Framework提供了一个模块的标准目录布局,在这种范式中,资源自动加载器非常有用,他们是默认启用的。

模块的基本目录结构:

  1. <modulename> 
  2.     configs/ 
  3.         application.ini 
  4.     controllers/ 
  5.         helpers/ 
  6.     forms/ 
  7.     layouts/ 
  8.         filters/ 
  9.         helpers/ 
  10.         scripts/ 
  11.     models/ 
  12.     services/ 
  13.     views/ 
  14.         filters/ 
  15.         helpers/ 
  16.         scripts/ 

Bootstrap.php

你可以扩展Zend_Application_Module_Bootstrap创建一个模块引导类 Bootstrap.php,具体的资源加载和默认的资源加载使用类似。

Tags: Framework Resource Autoloading

分享到: