将PHP spl_autoload_register()与Codeigniter一起使用

将PHP spl_autoload_register()与Codeigniter一起使用,php,codeigniter,autoload,spl-autoload-register,Php,Codeigniter,Autoload,Spl Autoload Register,请问如何将spl_autoload_register()与Codeigniter一起使用?我需要这样做,因为我使用Codeigniter与另一个框架,也使用自动加载 我在这里看到了一些东西 但是我不知道如何瞄准自动加载的CodeIgniter。我是OOP和Codeigniter的新手。非常感谢 上述链接有以下内容: function autoload_services($class_name){ $file = 'services/' . $class_name. '.php';

请问如何将spl_autoload_register()与Codeigniter一起使用?我需要这样做,因为我使用Codeigniter与另一个框架,也使用自动加载

我在这里看到了一些东西

但是我不知道如何瞄准自动加载的CodeIgniter。我是OOP和Codeigniter的新手。非常感谢

上述链接有以下内容:

function autoload_services($class_name){ $file = 'services/' . $class_name. '.php'; if (file_exists($file)){ require_once($file); } } function autoload_vos($class_name){ $file = 'vos/' . $class_name. '.php'; if (file_exists($file)){ require_once($file); } } function autoload_printers($class_name){ $file = 'printers' . $class_name. '.php'; if (file_exists($file)){ require_once($file); } } spl_autoload_register('autoload_services'); spl_autoload_register('autoload_vos'); spl_autoload_register('autoload_printers'); 函数自动加载\u服务($class\u名称){ $file='services/'。$class_name..php'; 如果(文件_存在($file)){ 需要一次(文件); } } 函数自动加载(类名称){ $file='vos/'。$class_name..php'; 如果(文件_存在($file)){ 需要一次(文件); } } 自动加载打印机功能($class\u名称){ $file='printers'.$class_name.'.php'; 如果(文件_存在($file)){ 需要一次(文件); } } spl_自动加载_寄存器(“自动加载服务”); spl_自动加载寄存器(“自动加载vos”); spl_自动加载_寄存器(“自动加载_打印机”); 啊哈,我现在明白了(在看了你的提问之后)。。。您遇到了一个问题,因为有两个已定义的
\uuuu自动加载
函数(因此会导致分析错误)

要修复它,只需将其中一个重命名为其他名称,然后在定义调用
spl_autoload_register('yournewfunctionname')之后立即进行

这应该就是全部,只要我了解你的问题…

啊哈,我现在明白了(在看了你的问题之后)。。。您遇到了一个问题,因为有两个已定义的
\uuuu自动加载
函数(因此会导致分析错误)

要修复它,只需将其中一个重命名为其他名称,然后在定义调用
spl_autoload_register('yournewfunctionname')之后立即进行

这应该就是全部,只要我了解你的问题…

多亏了我在推特上关注的一些CI人的一些信息(我问了他们):,而且,我找到了一个解决方案。如果你像我一样是一个代码点火器n00b,你可能会喜欢跟随这些家伙

我删除了init.php和config.php,然后将以下内容塞进了CI的config.php底部(我还从一个名为mylibrary的自定义库中自动加载)

spl_自动加载_寄存器(“多自动要求”)

工作出色。谢谢大家

多亏了我在推特上关注的一些CI人士提供的一些信息(我问了em):,我找到了一个解决方案。如果你像我一样是一个代码点火器n00b,你可能会喜欢跟随这些家伙

我删除了init.php和config.php,然后将以下内容塞进了CI的config.php底部(我还从一个名为mylibrary的自定义库中自动加载)

spl_自动加载_寄存器(“多自动要求”)


工作出色。谢谢大家

你说的“自动瞄准CodeIgniter”是什么意思?是否要构建自己的自动加载程序来加载CI类?或者你想沿着CI自动加载程序加载你自己的类(如果它有一个,我不知道)?是的,ircmaxwell,我需要使用spl_autoload_寄存器从Codeigniter或其他框架自动加载(Flow)。i、 e.如果调用了一个类,如果未在中找到该类,则检查CI,反之亦然。目前,我在页面上出现异常错误“无法加载类”。但是当我为其中一个禁用自动加载时,它运行良好。这是我需要的组合。你现在明白了吗?你说的“自动瞄准CodeIgniter”是什么意思?是否要构建自己的自动加载程序来加载CI类?或者你想沿着CI自动加载程序加载你自己的类(如果它有一个,我不知道)?是的,ircmaxwell,我需要使用spl_autoload_寄存器从Codeigniter或其他框架自动加载(Flow)。i、 e.如果调用了一个类,如果未在中找到该类,则检查CI,反之亦然。目前,我在页面上出现异常错误“无法加载类”。但是当我为其中一个禁用自动加载时,它运行良好。这是我需要的组合。你现在明白了吗?谢谢你的回复,麦克斯韦。我将flower autoload函数重命名为uuuuuuuuuuuuu-flower,在定义之后,我称为spl_uuu-autoload_u寄存器(“uuuuuuuuuuuu-autoload_-flower”);但是不,它仍然不起作用。我也会犯同样的错误。我想我需要了解CI是如何自动加载的,因为它不是通常的PHP自动加载功能:(你觉得怎么样?如果无法加载类,是否会抛出异常或发出错误?你能发布这两个函数的代码吗?谢谢你的回复,ircmaxwell。我将flower autoload函数重命名为uuu autoload _flower,定义后我称为spl u autoload _register(“uuu autoload _flower”);但是不,它仍然不能工作。我得到了同样的错误。我想我需要了解CI是如何自动加载的,因为它不是通常的PHP自动加载函数:(你觉得怎么样?如果无法加载类,是否会抛出异常或发出错误?你能发布这两个函数的代码吗?我必须添加'MY'和'MX',因为我使用的是HMVC扩展,以防有人发现这个答案并不能完全解决问题。你删除了config.php,然后塞进了我的CI的底部。)config.php?:|这是9年前的事了,在php开始有更好的结构之前-我是新来的,现在几乎记不起这个项目了。我想我是在组合两个php框架,两个框架的自动加载函数中都有一些冲突,所以这样做有助于“加入”两个配置。我必须添加'MY'和'MX',因为我正在使用HMVC扩展,以防有人发现这个答案并不能完全解决问题。你删除了config.php,然后塞进了我的CI的config.php的底部?:|这是9年前,在php开始有更好的结构之前-我是新手,几乎记不起项目我想我是在组合两个PHP框架,两个框架的自动加载函数中都有一些冲突,所以我这么做了
function multi_auto_require($class) {
if(stripos($class, 'CI') === FALSE && stripos($class, 'PEAR') === FALSE) {
    foreach (array('flourish', 'mylibrary') as $folder){
        if (is_file(APPPATH."../auxengines/{$folder}/{$class}.php")){
            include_once APPPATH."../auxengines/{$folder}/{$class}.php";
        }
    }
}
}