我正在尝试将symfony flex与捆绑包一起使用。
我有这个目录结构
/
src/
AppBundle/
AppBundle.php
# Many classes
Kernel.php
我想用这个命名空间App
加载内核.php类,用命名空间AppBundle
加载 AppBundle 中的类。
我尝试了许多作曲家配置,但无法加载它们。
"psr-4": {
"AppBundle\": "src/AppBundle/",
"App\": "src/"
}
但是我得到了这样的错误:
Expected to find class "AppAppBundleAppBundle" in file "/var/www/vhosts/flex/src/AppBundle/AppBundle.php"
更新
src/Kernel.php类有不同的命名空间,我无法更改它,因为其他类使用它,命名空间App
。某些脚本使用use AppKernel
调用该类
src/AppBundle/AppBundle.php
类具有此命名空间AppBundle
有办法做到这一点吗?
更新 2
我整理了一下:
"autoload": {
"psr-4": {
"AppBundle\": "src/AppBundle/"
},
"classmap": [
{ "App\Kernel": "src/Kernel.php" }
]
},
我建议使用内核的类映射.php改为:
"autoload": {
"psr-4": { "AppBundle\": "src/AppBundle" },
"classmap": [ "src/Kernel.php" ]
}
请参阅 https://getcomposer.org/doc/04-schema.md#classmap
你只需要
"psr-4": { "App\": "src/" }