我正在寻找一些我想在Symfony 2.1中实现的自定义配置参数的帮助
我是新手,但到目前为止,与Symfony合作非常棒。我现在正尝试使用config.yml
使我的捆绑包更加用户友好和可配置。
我想要定义的参数是一系列默认金额,例如在我的配置中我有
mymain:
default_values: [1, 2, 3, 4]
现在有了类似的东西,你如何正确使用treebuilder来添加节点并正确处理配置?
我试过的是
$rootNode
->children()
->enumNode('default_values')
->values(array(1, 2))
->end()
->end();
由此我得到以下异常:
路径“mymain.defaults”的类型无效。期望的标量,但得到阵列。
我希望配置是可选的,带有我指定的默认回退数组序列。
我也尝试过arrayNode,但我相信这是用于键和值配对的映射或数组,我只是试图配置一系列数字。
答案 0 :(得分:2)
据我所知,enumNode只允许您在给定的值集中设置单个值。
在您的示例中,default_values
的有效值为 1 或 2 ,但不是数组。
以下配置允许您在省略default_values
的情况下使用默认值设置数值数组。
$rootNode
->children()
->arrayNode('default_values')
->defaultValue(array(2,3))
->prototype('scalar')
->validate()
->ifTrue(function($v){ return !is_numeric($v); })
->thenInvalid('%s is not a number')
->end()
->end()
->end()
->end();
我希望你能得到它。