允许自定义捆绑包为其他捆绑包添加它自己的配置设置(Doctrine)

时间:2016-10-05 11:04:45

标签: php symfony doctrine-orm doctrine

我有一个自定义捆绑包,让我们称之为FooBarBundle

现在,在自定义扩展程序中,我想添加以下内容:

# Doctrine Configuration
doctrine:
    orm:
        mappings:
            FooBarBundle : ~

我认为这不可能,但我无法确认一个捆绑包不能预先添加另一个捆绑包的配置选项。

我不确定这是否相关:http://symfony.com/doc/current/bundles/prepend_extension.html

理想情况下,我想要一堆自己的捆绑包来添加自己的Doctrine Mappings,而不是在使用每个Bundle时依赖于更新Config.yml。

1 个答案:

答案 0 :(得分:1)

是的,您可以为每个捆绑包执行此操作,而无需更新config.yml文件:

namespace FooBarBundle\DependencyInjection;

// ...

class FooBarExtension extends Extension implements PrependExtensionInterface
{
    //...

    public function prepend(ContainerBuilder $container)
    {
        $container->loadFromExtension('doctrine', array(
            'orm' => array(
                'mappings' => array(
                     'FooBarBundle' => null,
                )
            ),
        ));
    }
}

如果您有许多捆绑包,则每个配置都将合并。