我正在尝试将一个巨大的单片Symfony2服务配置文件拆分为几个较小的文件,并按功能等对它们进行分组。
我的代码:
- app/config/config.yml:
imports:
- { resource: parameters.yml }
- { resource: "@YYYCarPartsBundle/Resources/config/parameters.yml" }
- { resource: "@XXXShopsBundle/Resources/config/parameters.yml" }
...
- { resource: "@YYYCarPartsBundle/Resources/config/services.yml" }
- { resource: "@XXXShopsBundle/Resources/config/services.yml" }
- YYYCarPartsBundle/Resources/config/services.yml
services:
car.parts.provider:
class: YYY\Services\Parts\Provider\Factory
arguments:
- .........
- .........
- XXXShopsBundle/Resources/config/services.yml
services:
xxx.webservice.client.find.model:
class: XXX\Soap\ExtendedSoapClient
arguments:
- .........
- "@car.parts.provider"
不幸的是我收到了这个错误 致命错误:未捕获的异常
'的Symfony \元器件\ DependencyInjection \异常\ ServiceNotFoundException的' 消息'the service“xxx.webservice.client.find.model”有一个 依赖于不存在的服务“car.parts.provider”。在 供应商\ symfony的\ symfony的\ SRC \的Symfony \元器件\ DependencyInjection \编译\ CheckExceptionOnInvalidReferenceBehaviorPass.php 第59行
我认为容器会按顺序导入所有资源文件,但看起来不像。 我正在使用Symfony 2.3.7。我试图将xxx.webservice.client.find.model定义为延迟服务,但没有效果。
任何帮助,解释将不胜感激。
答案 0 :(得分:1)
您可以在Resources/config
目录中定义每个包的服务,而不必显式导入它们,并且非常确定您可以使用yaml或xml(即src/XXX/ShopsBundle/Resources/config/services.yml
)