Symfony4 新包自动加载
Symfony4 new bundle autoloading
我想用 SF4 创建一个新的可重复使用的包。我遵循 documentation 但是如果我在 "src" 目录中添加我的新包,则会与 App 命名空间和作曲家自动加载发生冲突:
"autoload": {
"psr-4": {
"App\": "src/",
"Acme\TestBundle\": "src/Acme/TestBundle/"
}
},
然后,我得到这个错误:
PHP Fatal error: Uncaught
Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to
load class "AcmeTestBundle" from namespace "Acme\TestBundle".
我认为这是因为 PSR-4 自动加载器使用错误的命名空间加载文件 (App/Acme/TestBundle/AcmeTestBundle.php).
有办法解决这个问题吗?我还尝试为我的应用程序创建另一个包,但随后由于 Kernel.php 文件而崩溃...
这个后备目录方法也不起作用:
"psr-4": {
"": "src/"
}
为了帮助 PSR-4 Autoloader 将 Acme 作为一个包加载,你必须排除他的
应用服务目录中的目录:
文件: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}'**
我想用 SF4 创建一个新的可重复使用的包。我遵循 documentation 但是如果我在 "src" 目录中添加我的新包,则会与 App 命名空间和作曲家自动加载发生冲突:
"autoload": {
"psr-4": {
"App\": "src/",
"Acme\TestBundle\": "src/Acme/TestBundle/"
}
},
然后,我得到这个错误:
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "AcmeTestBundle" from namespace "Acme\TestBundle".
我认为这是因为 PSR-4 自动加载器使用错误的命名空间加载文件 (App/Acme/TestBundle/AcmeTestBundle.php).
有办法解决这个问题吗?我还尝试为我的应用程序创建另一个包,但随后由于 Kernel.php 文件而崩溃...
这个后备目录方法也不起作用:
"psr-4": {
"": "src/"
}
为了帮助 PSR-4 Autoloader 将 Acme 作为一个包加载,你必须排除他的 应用服务目录中的目录:
文件: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}'**