Symfony Bundle参考" @Bundle" - FileLocatorFileNotFoundException

时间:2017-07-22 08:57:23

标签: symfony symfony-3.3

我目前正在构建自己的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

     

文件&#34; @ MyBundle&#34;不存在(在<...>\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中没有效果?

1 个答案:

答案 0 :(得分:0)

如果您使用该服务,请记住公开以供外部使用:

autowire:true

public:true

但是,如果你的symfony不知道捆绑在哪里,请解答这个答案:

Symfony generated Bundle doesn't work