• 技术文章 >后端开发 >php教程

    Zend Framework教程之Resource Autoloading用法实例_PHP

    2016-05-28 11:47:59原创351
    本文实例讲述了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提供了一个模块的标准目录布局。在这种范式中,资源自动加载器非常有用,他们是默认启用的。

    模块的基本目录结构:


    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程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Zend Framework Resource Autolo
    上一篇:Zend Framework教程之动作的基类Zend_Controller_Action详解_PHP 下一篇:Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解_PHP
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 细思极恐?关于in_array的第3个参数• PHP 第三节 变量介绍_PHP• IIS下PHP的三种配置方式比较_PHP• 对text数据类型不支持代码页转换 从: 1252 到: 936_PHP• PHP网站安装程序制作的原理、步骤、注意事项和示例代码_PHP
    1/1

    PHP中文网