我有一个遗留应用程序使用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";
我们最近推出了作曲家和Symfony container
,dependency-injection
和config
组件。
我尝试实现的是通过composer加载camelcase类(所有新类使用驼峰案例来识别新旧代码),而不会导致BC中断。
您是否有关于如何使其工作的线索? 新类必须具有命名空间吗?
PS:新课程将在“ton”文件夹中传播。项目规模为700k LOC。
答案 0 :(得分:2)
所以我做的是将新类放在src/
文件夹中,添加命名空间并在composer.json中添加PSR-4
。
因为spl_autoload不适用于camelcase类,所以我很好。 : - )
"autoload": {
"psr-4": {
"MyNamespace\\NotLegacy\\": "src/"
}
}