Пространства имен не найдены - PullRequest
0 голосов
/ 27 сентября 2018

В проектах Symfony4 я хотел бы автоматически загружать классы, определенные в папке src, но чье пространство имен не начинается с App.Допустим, он начинается с Acme.

Я ожидал, что следующая конфигурация в composer.json будет работать, но это не так, и я получаю исключение класса не найдено:

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

Что мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

для меня это работает

    "autoload": {
    "psr-4": {
        "": "src/"
    }
},
0 голосов
/ 27 сентября 2018

У меня нет доказательств, но я не думаю, что вы можете использовать одно и то же пространство имен в одном каталоге.

Там могут быть App\SomeClass и Acme\SomeClass, и композитор будет искать их обоих в src/SomeClass.php.

. Вы можете использовать classmap автозагрузку для нестандартных имен.У вас должно быть App\ в /src, поэтому оно должно выглядеть следующим образом:

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

Но Я рекомендую иметь стандартные пути PSR-4 везде , чтобы предотвратить такие WTF.В вашем случае переименование Acme в App.

...