Zend框架中的模块自动加载器

| 我使用Zend框架开发了一个项目,但遇到了以下问题。我正在使用通过其zf.sh脚本生成的Zend框架MVC文件夹结构。 我的库文件夹具有Zend库文件夹,并且可以在应用程序内部正常调用其类。我在库中为班级创建了另一个文件夹。现在是文件夹结构: 我的项目 | _应用 | _docs | _public | _library      | _Zend      | _买家      | _Donations.php | _脚本 我将捐赠类“ Buyers_Donations \”命名为Zend框架命名约定。 当我尝试在控制器中使用此类时
$obj= new Buyers_Donation(); 
它给出了一个错误,无法在控制器内找到类Buyers_Donation。 但是,当我在Bootstrap中添加以下行时,它起作用了:
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
$moduleLoder = new Zend_Application_Module_Autoloader(
array(
\'namespace\'=>\'\',
\'basePath\'=>dirname(__FILE__)
));
尽管我的应用程序中没有任何模块,但是有人可以解释一下实际发生了什么,以及模块自动装载器的用途是什么?     
已邀请:
        如您所怀疑的那样,您不应该使用模块自动装载器,因为您没有使用模块。假设Zend *类为您正确地自动加载,您需要做的就是告诉标准自动加载器,它也应用于\'Buyers \'名称空间中的类。因此,您可以执行以下操作,而不是发布您的代码段:
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace(\'Buyers_\');
您也可以根据需要在application.ini中进行设置。 我还假设您的类位于库文件夹中,而不是您的问题所暗示的位于公共目录中(这很不好)。     
        如果您不想使用zend \的自动加载功能,则必须使用require_once()手动添加文件,例如:
 require_once \'Buyer/Donations.php\';
如果确实希望将zend loader与使用自己名称空间的库代码一起使用,则可以使用registerNamespace()方法在autoloader中进行注册。在引导程序中,您可以执行以下操作:
protected function _initAutoload()
{

    $autoloader = Zend_Loader_Autoloader::getInstance()->
                           registerNamespace(\'Buyers_\')
    return $autoloader;
}
如果自动加载程序不起作用,请确保将include路径设置为库文件夹的某个位置。它由zend框架自动添加到public / index.php:
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . \'/../library\'),
get_include_path(),
)));
    

要回复问题请先登录注册