zend-framework - Zend 自动加载模型问题

标签 zend-framework namespaces zend-autoloader

Zend 框架。 我想从 bootstrap 类中自动加载 models 文件夹中的模型类。 这些模型实际上并不使用任何命名空间(因此我有 Ex.User.php 文件的类名为 User 等等......)。

如果我理解正确,我应该使用 Zend_Loader_Autoloader_Resource 并且我尝试过:

function _initLoaderResource() 
{         
    $resourceLoader = new Zend_Loader_Autoloader_Resource(array(                 
    'basePath'  => APPLICATION_PATH,//points to the "application" path where resides "models" folder
    'namespace' =>''       
    ));         

    $resourceLoader->addResourceType('models', 'models/');

} 

我收到以下“Zend_Loader_Exception”消息:

'Initial definition of a resource type must include a namespace' 

我的问题是:

  • 这是自动加载模型的正确方法吗?
  • 我应该如何管理不遵循 Zend Framework 编码标准的资源代码?

最佳答案

实际上,您可能不想为此使用资源自动加载器,因为(正如您所发现的)它需要一个命名空间。标准自动加载器(从包含路径加载模型)有一个选项 setFallbackAutoloader ,它告诉 ZF 该自动加载器应该用于与另一个类覆盖的命名空间不匹配的任何类。因此,您需要做的就是确保您的模型目录位于包含路径中并将此选项设置为 true。

您可能已经在使用标准自动加载器来加载 Zend 类,因此您可能需要修改 application.ini 文件以将模型目录添加到包含路径中,然后在 application.txt 文件中设置回退选项。 ini 或 Bootstrap 类中:

protected function _initAutoloader()
{
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->setFallbackAutoloader(true);

    return $autoloader;
}

关于zend-framework - Zend 自动加载模型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009626/

相关文章:

php - 为什么 Zend Bootstrap 自动加载功能中有这两行

php - 在 Zend Framework (v1) 应用程序中使用 PHP 命名空间

zend-framework - Zend Framework - 扩展模块 Controller

php - 如何使用字符串值查询 Google Spreadsheets API?

php - 我如何在 Zend 的 application.ini 文件中定义一个 mysql 连接?

javascript - 我如何以类、命名空间的形式组织 javascript 代码(相同的 C#)

php - 在带有子类的php中级联使用命名空间

php - Zend Framework 的数据库组件的推荐实践?

php - 使用 Zend_Db_Table_Select 编写子查询

javascript - 调度名称中带有点的 CustomEvent 不会触发 jQuery.on() 事件监听器