避免 Symfony 覆盖包之间的参数

Avoid Symfony to override parameters between bundles

我在每个包内使用 YML 参数将它们用作数据固定装置,如下所示:

AppBundle\Resources\config\datafixtures.yml

parameters:
    datafixtures:
        defaultusers:
            0:
                name: john
                email: john@company1.lol
            1:
                name: steve
                email: steve@company1.lol

GeolocationBundle\Resources\config\datafixtures.yml

parameters:
    datafixtures:
        cities:
            0:
                external_service_area: Cantabria
                company_area: Santander
            1:
                external_service_area: Gipuzkoa
                company_area: San Sebastian

当我在应用程序 config.yml 文件中导入文件时出现问题。

imports:
    - { resource: '@AppBundle/Resources/config/datafixtures.yml' }
    - { resource: '@GeolocationBundle/Resources/config/datafixtures.yml' }

它不是合并树,而是覆盖它们。有没有办法让它们合并?

基本上树的形式使它们相互覆盖,所以避免它的最好方法是用一个完整的名称定义每个节点:

AppBundle\Resources\config\datafixtures.yml

parameters:
    datafixtures.defaultusers:

GeolocationBundle\Resources\config\datafixtures.yml

parameters:
    datafixtures.cities: