覆盖anohter bundle的参数

时间:2016-07-25 10:07:29

标签: symfony

我正在构建一个捆绑包,它依赖于另一个捆绑包。父包加载了services.yml文件,该文件定义了一些参数:

.symtab

我知道 xbundle.doctrine.factory 参数可以从 app / config / config.yml 更改,但我想在我的自定义中更改其值儿童捆绑。我read the docs,以及建议的stackoverflow问题,但仍然无法确定如何实现它。

1 个答案:

答案 0 :(得分:2)

您必须在子Bundle中编写CompilerPass,并更改值:

// src/Acme/DemoBundle/DependencyInjection/Compiler/OverrideServiceCompilerPass.php
namespace Acme\DemoBundle\DependencyInjection\Compiler;

use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;

class OverrideServiceCompilerPass implements CompilerPassInterface
{
    public function process(ContainerBuilder $container)
    {  
        $container->setParameter('xbundle.doctrine.factory', '..New Value ...');
    }
}

一些文档here