我正在试图找出如何让作曲家在2个目录下查找特定命名空间的类。我在想的是:
Default location: /src/MyModule/myClass.php
Override location: /config/override/MyModule/myClass.php
现在,我想使用composer配置自动加载器以检查Override位置下是否存在类。如果是,请使用此类。如果没有,请从默认位置加载该类。
使用composer这是可能的吗?或者我是否必须使用自己的自动加载器实现此逻辑?
答案 0 :(得分:2)
如果您需要在多个目录中搜索相同的前缀,那么 可以将它们指定为数组:
{
"autoload": {
"psr-4": { "Monolog\\": ["src/", "lib/"] }
}
}
您当然会将其添加到composer.json
文件中。要以编程方式执行此操作,您可以执行此操作:
$autoloader = require __DIR__.'/../vendor/autoload.php';
$autoloader->addPsr4('MyModule\\', [ '/first/dir/MyModule', '/another/dir/MyModule' ]);