zend 自动加载器错误消息

发布于 2024-12-06 08:12:01 字数 1721 浏览 4 评论 0原文

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

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

,其中 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();

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

I am using this autoloader to load multiple external libraries in my zend app. The classes are loaded correctly and works fine. But i seem to have an issue while loading classes using multiple such autoloaders. The problem is that after finding the class in one of the autoloaders, zend continues searching in other loaders hence producing the following error message from autoloaders except from the one they are defined in.

Notice: Undefined index: myClassFile in
/var/www/myApp/application/loaders/Autoloader/PhpThumb.php on
line 21

where myClassFile is defined in another loader and loading/working fine, but it still continues to searching in this second autoloader where its not defined.

Any idea what i am missing ?


Update:
my bootstrap file:

<?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());
    }


}


?>

and later to use it:

$factory=new Factory();

which seem to work fine but throws error.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

余罪 2024-12-13 08:12:01

我可能无法正确理解你的问题。但是如果您尝试自动加载外部库(例如 PhpThumb),那么您就做错了。因为太多的自动加载会使应用程序变慢。在像 PhpThumb 这样的库中,几乎没有一个 php 文件只是使用 require_once 来代替。并放置此路径APPLICATION_PATH/library/PhpThumb.php

I might not be able to understand your problem correctly . But If you are trying to autoload external library such as PhpThumb then you are doing it wrong . Since to much autloading will make application slower . In library such as PhpThumb there are hardly One php file simply use require_once instead . And put this path APPLICATION_PATH/library/PhpThumb.php

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文