国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php框架 > ZendFramework > Zend Framework教程-Resource Autoloading使用方法

Zend Framework教程-Resource Autoloading使用方法

来源:程序员人生   发布时间:2014-03-22 23:45:57 阅读次数:3538次
通常,在开发应用程序中,可能类文件名不能按照标准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,具体的资源加载和默认的资源加载使用类似。



















生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生