我有一个遗留应用程序,它使用 spl_autload
来加载类(它们没有命名空间)
<?php
spl_autoload_extensions('.class.php,.php');
set_include_path(
$listOfDir
);
spl_autoload_register();
// require composer autoloader
// can't place that line before the call spl_autoload_register without breaking everything.
require __DIR__ . "/../vendor/autoload.php";
我们最近引入了 composer 和 Symfony container
、dependency-injection
和 config
组件。
我试图实现的是通过 composer 加载驼峰命名法类(所有新类都使用驼峰命名法来识别新代码与遗留代码)而不会导致 BC 中断。
您是否有关于如何让它工作的线索? 新类必须有命名空间吗?
PS:新类(class)将分布在 “大量” 文件夹中。项目规模为700k LOC。
最佳答案
所以我所做的是将新类放入 src/
文件夹,添加命名空间并在 composer.json 中添加 PSR-4
。
因为 spl_autoload 不适用于驼峰式类,所以我可以接受。 :-)
"autoload": {
"psr-4": {
"MyNamespace\\NotLegacy\\": "src/"
}
}
关于php - 共存 spl_autoload_register 和 composer autoload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458450/