0

我正在使用这个自动加载器在我的 zend 应用程序中加载多个外部库。这些类已正确加载并且工作正常。但是我在使用多个此类自动加载器加载类时似乎遇到了问题。问题是,在其中一个自动加载器中找到类后,zend 继续在其他加载器中搜索,因此从自动加载器中生成以下错误消息,但定义它们的除外。

注意:未定义索引:第 21 行 /var/www/myApp/application/loaders/Autoloader/PhpThumb.php 中的 myClassFile

myClassFile 在另一个加载器中定义并且加载/工作正常,但它仍然继续在第二个未定义的自动加载器中搜索。

知道我缺少什么吗?


更新:我的引导文件:

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoload()
    {
        $autoLoader=Zend_Loader_Autoloader::getInstance();
        $resourceLoader=new Zend_Loader_Autoloader_Resource(array(
            'basePath'=>APPLICATION_PATH,
            'namespace'=>'',
            'resourceTypes'=>array(
                'form'=>array(
                    'path'=>'forms/',
                    'namespace'=>'Form_'
                ),
                'models'=>array(
                    'path'=>'models/',
                    'namespace'=>'Model_'
                ),                
            )

            ));

        //return $autoLoader;

        $resourceLoader->addResourceType('loader', 'loaders/', 'My_Loader_');
        $autoLoader->pushAutoloader($resourceLoader);

        //load PhpThumb class
        $autoLoader->pushAutoloader(new My_Loader_Autoloader_PhpThumb());

        //load Factory Class
        $autoLoader->pushAutoloader(new My_Loader_Autoloader_Factory());
    }


}


?>

稍后使用它:

$factory=new Factory();

这似乎工作正常,但会引发错误。

4

1 回答 1

-2

我可能无法正确理解您的问题。但是,如果您尝试自动加载外部库,例如 PhpThumb,那么您做错了。因为过多的自动加载会使应用程序变慢。在诸如 PhpThumb 之类的库中,几乎没有一个 php 文件只需使用 require_once 即可。并把这条路APPLICATION_PATH/library/PhpThumb.php

于 2011-09-26T17:59:18.423 回答