我目前正在构建自己的 Symfony 包(我使用的是 3.3 版)。到目前为止它工作得很好,但是现在我想将特定于包的服务定义从我的包中移到包中app/config/services.yml
的服务定义中。
我创建了一个src/MyBundle/Resources/config/services.yml
并按照指南如何在 Bundle 中加载服务配置来加载它。这很好用,但我认为新创建的路径services.yml
看起来有点难看:
MyBundle\:
resource: '../../*'
exclude: '../../{Tests}'
@Bundle
所以我认为如果我使用-notation 代替它看起来会更干净一些:
MyBundle\:
resource: '@MyBundle/*'
exclude: '@MyBundle/{Tests}'
但是,比我面临的错误:
FileLocatorFileNotFoundException
文件“@MyBundle”不存在(在:中
<...>\MyBundle\DependencyInjection/../Resources/config
),其中<...>
对应于绝对路径。
我还测试了这是否是包名称的命名问题,但是当我在 中 有一个错误命名的包引用时app/config/services.yml
,例如@SomeBundleThatDoesNotExist
,我得到一个不同的错误:
FileLoaderLoadException
捆绑“SomeBundleThatDoesNotExist”不存在或未启用。
所以我的问题是:为什么@Bundle
-notation 在 the 中可以正常工作,app/config/services.yml
但在src/MyBundle/Resources/config/services.yml
?