我想用SF4创建一个新的可重用捆绑包。我跟着documentation但是如果我在“src”目录中添加我的新包,则与App命名空间和作曲家自动加载存在冲突:
"autoload": {
"psr-4": {
"App\\": "src/",
"Acme\\TestBundle\\": "src/Acme/TestBundle/"
}
},
然后,我收到了这个错误:
PHP致命错误:未捕获 Symfony \ Component \ Debug \ Exception \ ClassNotFoundException:试图 从命名空间“Acme \ TestBundle”加载类“AcmeTestBundle”。
我认为这是因为PSR-4自动加载器使用错误的命名空间加载文件(App / Acme / TestBundle / AcmeTestBundle.php)。
有没有办法解决这个问题?我还尝试为我的应用程序创建另一个包,但由于Kernel.php文件而崩溃...
此回退目录方法也不起作用:
"psr-4": {
"": "src/"
}
答案 0 :(得分:0)
为了帮助PSR-4 Autoloader加载Acme作为捆绑包,您必须排除他的 App服务目录中的目录:
file:config / services.yaml
services:
...
App\:
resource: '../src/*'
# you can exclude directories or files
# but if a service is unused, it's removed anyway
**exclude: '../src/{Entity,Migrations,Repository,Acme}'**