我想知道如何使用相同的TreeBuilder别名获得2个包。
就我而言,我有下一个配置:
harmony:
site_name: 'Site name'
theme: 'default'
我希望捆绑包定义site_name
,其他捆绑包定义theme
参数。
实际上,要实现这一点,我创建了2个配置类。
第一个包含:
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('harmony');
$rootNode
->children()
->scalarNode('site_name')
->isRequired()
->info('The name displayed as the title of the site (e.g. company name, project name).')
->end()
->end()
;
第二个:
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('harmony');
$rootNode
->children()
->scalarNode('theme')
->isRequired()
->cannotBeEmpty()
->defaultValue('default')
->info('The theme used to render the frontend pages.')
->end()
->end()
;
但是我收到了下一条异常消息:
“和谐”下无法识别的选项“主题”
我假设我的第一个包正在检查额外的密钥,并找到了第二个包中定义的theme
密钥。
有没有办法实现我想做的事情?
答案 0 :(得分:0)
您可以尝试通过覆盖第二个包扩展类中的父方法来使用别名包:return' harmony'。
参见文档,它解释了DI如何检查捆绑配置:
http://symfony.com/doc/current/bundles/extension.html#manually-registering-an-extension-class