找不到命名空间类

时间:2018-09-27 15:25:25

标签: symfony composer-php symfony4 psr-4

在Symfony4项目中,我想自动加载在src文件夹中定义但其名称空间不是以App开头的类。假设它以Acme开头。

我期望composer.json中的以下配置能够正常工作,但是没有用,并且我正在获取未找到类的异常:

"autoload": {
    "psr-4": {
        "App\\": "src/",
        "Acme\\": "src/"
    }
},

我在这里想念什么?

2 个答案:

答案 0 :(得分:1)

我没有证据,但是我认为您不能在同一目录中使用相同的名称空间。

可能有App\SomeClassAcme\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/"
    }
},