在Symfony4项目中,我想自动加载在src
文件夹中定义但其名称空间不是以App
开头的类。假设它以Acme
开头。
我期望composer.json
中的以下配置能够正常工作,但是没有用,并且我正在获取未找到类的异常:
"autoload": {
"psr-4": {
"App\\": "src/",
"Acme\\": "src/"
}
},
我在这里想念什么?
答案 0 :(得分:1)
我没有证据,但是我认为您不能在同一目录中使用相同的名称空间。
可能有App\SomeClass
和Acme\SomeClass
,并且作曲者会在src/SomeClass.php
中寻找它们两者。
您可以使用classmap
自动加载进行非标准命名。您应该在App\
中有/src
,所以应该像这样:
{
"autoload": {
"psr-4": {
"App\": "src"
},
"classmap": "src"
}
}
但是我建议所有地方都使用PSR-4路径标准,以防止此类WTF。在您的情况下,将Acme
重命名为App
。
答案 1 :(得分:0)
对我来说,这有效
"autoload": {
"psr-4": {
"": "src/"
}
},