Php Zend库与我自己的库冲突

Php Zend库与我自己的库冲突,php,zend-framework,Php,Zend Framework,我在文件夹“classes”中有自己的lib。我正在尝试将Zend库作为独立库使用。(将他们的类集成到我的应用程序中) 例如,如下所示。Zend类都放在一个名为Zend的文件夹下 classes/db.class.php classes/Zend/translate.php 我以前使用自动加载函数加载类 if (!function_exists ("__autoload")){ function __autoload($class_name) { if(file_exists(ABS

我在文件夹“classes”中有自己的lib。我正在尝试将Zend库作为独立库使用。(将他们的类集成到我的应用程序中)

例如,如下所示。Zend类都放在一个名为Zend的文件夹下

classes/db.class.php

classes/Zend/translate.php

我以前使用自动加载函数加载类

if (!function_exists ("__autoload")){
function __autoload($class_name) 
{

    if(file_exists(ABSPATH.'/classes/'.$class_name.'.class.php')){
        require_once ABSPATH.'/classes/'.$class_name.'.class.php';
    }   

}
}
我的函数检查我的应用程序是否需要我的类,如果需要,我将从我的“类”文件夹加载它,如果不需要,它将从Zend文件夹加载

每当我打电话

require_once ABSPATH.'/classes/Zend/Loader/Autoloader.php'; 
$loader = Zend_Loader_Autoloader::getInstance(); 
它一直说我自己的类没有加载。我认为这是Zend auto load的一个问题,它检查并发现它需要Zend文件夹中的db.class.php


当我去Zend和我自己的库之间的独立库时,我该怎么做。

magic
\uu autoload
功能不支持多个自动加载程序。如果如上所示指定自定义自动加载器,然后注册Zend自动加载器,则之前安装的自动加载器将被Zend自动加载器覆盖

由于Zend组件使用spl_autoload_register(),您也可以使用此方法(支持多个自动加载器-它基本上安装一个单独的自动加载器,处理另一堆(用户定义的)自动加载器)


我想使用Zend autoload,因为它使事情变得更加简单,我不需要担心需要哪个类。嗨,那么spl_autoload_register()的作用是它支持多个自动加载,以便Zend autoloader在覆盖我以前的自动加载程序时可以使用?我说得对吗?是的-您只能定义一个具有特殊名称的函数
\uuu autoload
,因此您无法以这种方式定义两个自动加载器
spl\u autoload\u register
几乎保留了所有应被视为自动加载程序的已注册函数的列表,并在需要自动加载时调用它们,但其副作用是您不能再使用
\u autoload
。感谢您的清晰解释和帮助。非常感谢。
// Example (requires PHP >= 5.3 because of the anonymous function)
spl_autoload_register(function($className) {
    $fileName = ABSPATH .'/classes/'. $className .'.class.php';
    if (is_readable($fileName)) {
        require_once($fileName);
    }
});