gpt4 book ai didi

php - Composer 自动加载总是最先出现

转载 作者:行者123 更新时间:2023-12-05 01:20:01 26 4
gpt4 key购买 nike

我在一个遗留项目中使用 Composer,该项目有很多没有命名空间的类。重构不是一种选择(这是一个非常庞大的应用程序),但所有新模块都完全符合 psr-4。遗留代码有它自己的自动加载方法(使用类映射,非常有效)。

我的问题是:无论我以何种顺序添加自动加载器方法, Composer 自动加载器总是排在第一位!这会减慢每个类的加载速度:每次我从遗留代码调用一个类时,它首先尝试将它与所有 Composer 自动加载选项(包括 findFileWithExtension() )相匹配,然后才调用替代自动加载器。

我已经使用 PHPStorm+XDebug 对其进行了检查,无论我先包含哪个自动加载器,Composer 自动加载总是在遗留自动加载器之前被调用。

有没有办法改变这种行为??

提前致谢!

最佳答案

好的,伙计们,我找到了解决方案并想与大家分享:spl_autoload_register() 函数有第三个参数:$prepend。当设置为 true 时,它​​会将自动加载函数添加到自动加载队列中,而不是附加它(它实际上记录在官方 PHP Documentation 中)。 Composer 总是将它设置为 true,因此它的自动加载器总是首先被调用。为了修复它,我更改了旧版自动加载器,将 $prepend 设置为 true,并将其命名为AFTER,包括 Composer 的自动加载。

希望对大家有帮助! :)

关于php - Composer 自动加载总是最先出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35598258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com