我正在开发一个Symfony2应用程序,我希望能够使用这样的配置文件:
my_config:
values: ['val1', 'val2']
所以我创建了以下配置文件:
class Configuration implements ConfigurationInterface {
public function getConfigTreeBuilder() {
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('my_config');
$rootNode
->children()
->arrayNode('values')
->prototype('scalar')->end()
->end()
->end()
;
return $treeBuilder;
}
}
然而,这个配置允许我添加如下内容:
my_config:
values: ['val1', 123, false]
有没有办法强制数组值为String类型(例如prototype('string')
)?
答案 0 :(得分:2)
节点映射只是期望这些值
$this->nodeMapping = array(
'variable' => __NAMESPACE__.'\\VariableNodeDefinition',
'scalar' => __NAMESPACE__.'\\ScalarNodeDefinition',
'boolean' => __NAMESPACE__.'\\BooleanNodeDefinition',
'integer' => __NAMESPACE__.'\\IntegerNodeDefinition',
'float' => __NAMESPACE__.'\\FloatNodeDefinition',
'array' => __NAMESPACE__.'\\ArrayNodeDefinition',
'enum' => __NAMESPACE__.'\\EnumNodeDefinition',
);
您可以在Conifguration类中手动检查。 请查看http://symfony.com/doc/current/cookbook/bundles/configuration.html#processing-the-configs-array此部分以获取更多信息。