共存spl_autoload_register和composer autoload

时间:2015-07-16 15:26:49

标签: php composer-php autoload spl

我有一个遗留应用程序使用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 containerdependency-injectionconfig组件。

我尝试实现的是通过composer加载camelcase类(所有新类使用驼峰案例来识别新旧代码),而不会导致BC中断。

您是否有关于如何使其工作的线索? 新类必须具有命名空间吗?

PS:新课程将在“ton”文件夹中传播。项目规模为700k LOC。

1 个答案:

答案 0 :(得分:2)

所以我做的是将新类放在src/文件夹中,添加命名空间并在composer.json中添加PSR-4

因为spl_autoload不适用于camelcase类,所以我很好。 : - )

"autoload": {
    "psr-4": {
        "MyNamespace\\NotLegacy\\": "src/"
    }
}