【问题标题】:How split one huge service configuration file into several bundle configuration files如何将一个庞大的服务配置文件拆分成多个 bundle 配置文件
【发布时间】:2013-12-01 20:48:08
【问题描述】:

我正在尝试将一个巨大的单体 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\Component\DependencyInjection\Exception\ServiceNotFoundException' 带有消息'服务“xxx.webservice.client.find.model”有一个 依赖于不存在的服务“car.parts.provider”。在 供应商\symfony\symfony\src\Symfony\Component\DependencyInjection\Compiler\CheckExceptionOnInvalidReferenceBehaviorPass.php 第 59 行

我以为容器会按顺序导入所有资源文件,但它看起来不像。 我正在使用 Symfony 2.3.7。我尝试将 xxx.webservice.client.find.model 定义为惰性服务,但没有效果。

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

【问题讨论】:

    标签: php symfony dependencies


    【解决方案1】:

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

    【讨论】:

    • 感谢 Symfony 如何从包中加载配置文件。关于我的问题,它是 PEBCAK - 一个文件中的缩进错误,所以 car.parts.provider 真的丢失了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2015-03-11
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多