0

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

4

1 回答 1

0

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

自动接线:真

公开:真实

但是,如果您的 symfony 不知道捆绑包在哪里,请查看以下答案:

Symfony 生成的 Bundle 不起作用

于 2017-07-22T13:07:53.290 回答