手机
当前位置:查字典教程网 >编程开发 >php教程 >Zend Framework教程之Resource Autoloading用法实例
Zend Framework教程之Resource Autoloading用法实例
摘要:本文实例讲述了ZendFramework中ResourceAutoloading用法。分享给大家供大家参考,具体如下:通常,在开发应用程序中...

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

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

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

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

具体实例如下:

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

创建资源装载器:

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

定义资源类型

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

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

具体定义如下:

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

也可以在构造函数中指定

$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', ), ), ));

使用以定义资源

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

模块中的资源自动加载

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

模块的基本目录结构:

<modulename>

configs/

application.ini

controllers/

helpers/

forms/

layouts/

filters/

helpers/

scripts/

models/

services/

views/

filters/

helpers/

scripts/

Bootstrap.php

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

希望本文所述对大家PHP程序设计有所帮助。

【Zend Framework教程之Resource Autoloading用法实例】相关文章:

社区(php&&mysql)五

转换中文为unicode 转换unicode到正常文本

php正则preg_replace_callback函数用法实例

打造计数器DIY三步曲(中)

Session的工作方式

PHP SPL标准库之SplFixedArray使用实例

社区(php&&mysql)六

用PHP制作静态网站的模板框架(四)

PHP 反射(Reflection)使用实例

聊天室php&mysql(一)

精品推荐
分类导航