如何将一个巨大的服务配置文件拆分为多个捆绑配置文件

时间:2013-11-18 16:04:44

标签: php symfony dependencies

我正在尝试将一个巨大的单片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定义为延迟服务,但没有效果。

任何帮助,解释将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以在Resources/config目录中定义每个包的服务,而不必显式导入它们,并且非常确定您可以使用yaml或xml(即src/XXX/ShopsBundle/Resources/config/services.yml