当前位置:首页 > PHP教程 > PHP常见问题

Zend Framework教程之Resource Autoloading用法实例

本文实例讲述了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,具体的资源加载和默认的资源加载使用类似。

更多关于zend相关内容感兴趣的读者可查看本站专题:《zend framework框架入门教程》、《php优秀开发框架总结》、《yii框架入门及常用技巧总结》、《thinkphp入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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



【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!