Я пытаюсь использовать Symfony Flex с пакетом.
У меня есть эта структура каталогов
/
src/
AppBundle/
AppBundle.php
# Many classes
Kernel.php
Я хочу загрузить класс Kernel.php с этим пространством имен App
и классы внутри AppBundle с пространством имен AppBundle
,
Я перепробовал множество конфигураций композитора, но не смог их загрузить.
"psr-4": {
"AppBundle\\": "src/AppBundle/",
"App\\": "src/"}
Но я получил такие ошибки:
Expected to find class "App\AppBundle\AppBundle" in file "/var/www/vhosts/flex/src/AppBundle/AppBundle.php"
ОБНОВИТЬ
Класс src / Kernel.php имеет другое пространство имен, и я не мог изменить его, потому что другие классы использовали его, пространство имен App
, Некоторые сценарии вызывают этот класс, используя use App\Kernel
src/AppBundle/AppBundle.php
класс имеет это пространство имен AppBundle
Есть способ сделать это?
ОБНОВЛЕНИЕ 2
Я разобрался в этом:
"autoload": {
"psr-4": {
"AppBundle\\": "src/AppBundle/"},
"classmap": [
{ "App\\Kernel": "src/Kernel.php" }
]
},
Я бы предложил вместо этого использовать карту классов для Kernel.php:
"autoload": {
"psr-4": { "AppBundle\\": "src/AppBundle" },
"classmap": [ "src/Kernel.php" ]
}
Вам нужно только
"psr-4": { "App\\": "src/" }