gpt4 book ai didi

php - 是否可以对多个包使用相同的 TreeBuilder 根

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:23 24 4
gpt4 key购买 nike

我想知道如何使用相同的 TreeBuilder 别名拥有 2 个包。

在我的例子中,我有下一个配置:

harmony:
site_name: 'Site name'
theme: 'default'

而且我希望 site_name 由一个 bundle 定义,而 theme 参数由另一个 bundle 定义。

实际上,为了实现这一点,我创建了 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()
;

但是我收到下一条异常消息:

Unrecognized option "theme" under "harmony"

我假设我的第一个包正在检查额外的键并找到了第二个包中定义的 theme 键。

有没有办法实现我想做的事情?

最佳答案

您可以尝试通过覆盖第二个包扩展类中的父方法来使用别名包:return 'harmony'。

查看文档,它解释了 DI 如何检查包配置:

http://symfony.com/doc/current/bundles/extension.html#manually-registering-an-extension-class

关于php - 是否可以对多个包使用相同的 TreeBuilder 根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46638987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com