Zend Framework教程之Resource Autoloading用法实例

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

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

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

'Blog','basePath' => APPLICATION_PATH . '/modules/blog',));

具体实例如下:

PHP // Foo_Form_Guestbook |-- models/ | |-- DbTable/ | | `-- Guestbook.PHP // Foo_Model_DbTable_Guestbook | |-- Guestbook.PHP // Foo_Model_Guestbook | `-- GuestbookMapper.PHP // Foo_Model_GuestbookMapper

创建资源装载器:

'path/to/some/resources/','namespace' => 'Foo',));

定义资源类型

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

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

具体定义如下:

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

也可以在构造函数中指定

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

使用以定义资源

rush:PHP;"> $form = new Foo_Form_Guestbook(); $guestbook = new Foo_Model_Guestbook();

模块中的资源自动加载

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

模块的基本目录结构:

configs/ application.ini controllers/ helpers/ forms/ layouts/ filters/ helpers/ scripts/ models/ services/ views/ filters/ helpers/ scripts/ Bootstrap.PHP

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

更多关于zend相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《PHP常见数据库操作技巧汇总》

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...