Zend Autoloading模型问题

luc*_*uca 2 zend-framework namespaces zend-autoloader

Zend框架.我想在bootstrap类中自动加载模型文件夹中的模型类.这些模型实际上并没有使用任何命名空间(因此我有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/');

} 
Run Code Online (Sandbox Code Playgroud)

我收到以下'Zend_Loader_Exception'消息:

'Initial definition of a resource type must include a namespace' 
Run Code Online (Sandbox Code Playgroud)

我的问题是:

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

Tim*_*ain 5

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

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

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

    return $autoloader;
}
Run Code Online (Sandbox Code Playgroud)