我想弄清楚如何让作曲家在2个目录下寻找特定名称空间的类。我在想的是:
Default location: /src/MyModule/myClass.php
Override location: /config/override/MyModule/myClass.php
现在,我想使用composer来配置自动加载器,以检查一个类是否存在于Override位置下。如果是,使用这个类。如果没有,则从默认位置加载类。
这是可能的使用作曲家或我必须实现这个逻辑使用我自己的自动加载器?
来自Composer文档:
如果您需要在多个目录中搜索相同的前缀,您可以可以像这样将它们指定为数组:
{
"autoload": {
"psr-4": { "Monolog\": ["src/", "lib/"] }
}
}
您当然会将其添加到您的composer.json
文件中。要通过编程方式完成,可以这样做:
$autoloader = require __DIR__.'/../vendor/autoload.php';
$autoloader->addPsr4('MyModule\', [ '/first/dir/MyModule', '/another/dir/MyModule' ]);