我目前正在构建自己的Symfony包(我使用的是3.3版本)。它到目前为止工作正常,但现在我想将特定于包的服务定义从我的app/config/services.yml
移到包中的服务定义。
我创建了一个src/MyBundle/Resources/config/services.yml
并按照指南How to Load Service Configuration inside a Bundle加载了它。这很好,但我认为新创建的services.yml
内部的路径看起来有点难看:
MyBundle\:
resource: '../../*'
exclude: '../../{Tests}'
所以我认为如果我使用@Bundle
- 符号代替它会更清晰一些:
MyBundle\:
resource: '@MyBundle/*'
exclude: '@MyBundle/{Tests}'
但是,我遇到了错误:
FileLocatorFileNotFoundException
文件" @ MyBundle"不存在(在
<...>\MyBundle\DependencyInjection/../Resources/config
),其中<...>
对应于绝对路径。
我还测试了它是否是捆绑名称的命名问题,但是当我在app/config/services.yml
中有一个错误命名的捆绑引用时,例如@SomeBundleThatDoesNotExist
然后我收到了另一个错误:
FileLoaderLoadException
Bundle&#34; SomeBundleThatDoesNotExist&#34;不存在或未启用。
所以我的问题是:为什么@Bundle
- 符号在app/config/services.yml
但在src/MyBundle/Resources/config/services.yml
中没有效果?
答案 0 :(得分:0)
如果您使用该服务,请记住公开以供外部使用:
autowire:true
public:true
但是,如果你的symfony不知道捆绑在哪里,请解答这个答案: