Symfony2 配置强制数组类型
Symfony2 configuration force array type
我正在开发 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]
有没有办法强制数组值是字符串类型(例如 prototype('string')
之类的东西)?
节点映射只需要这些值
$this->nodeMapping = array(
'variable' => __NAMESPACE__.'\VariableNodeDefinition',
'scalar' => __NAMESPACE__.'\ScalarNodeDefinition',
'boolean' => __NAMESPACE__.'\BooleanNodeDefinition',
'integer' => __NAMESPACE__.'\IntegerNodeDefinition',
'float' => __NAMESPACE__.'\FloatNodeDefinition',
'array' => __NAMESPACE__.'\ArrayNodeDefinition',
'enum' => __NAMESPACE__.'\EnumNodeDefinition',
);
您可以在配置中手动检查 class。
查看http://symfony.com/doc/current/cookbook/bundles/configuration.html#processing-the-configs-array此部分以获取更多信息。
我正在开发 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]
有没有办法强制数组值是字符串类型(例如 prototype('string')
之类的东西)?
节点映射只需要这些值
$this->nodeMapping = array(
'variable' => __NAMESPACE__.'\VariableNodeDefinition',
'scalar' => __NAMESPACE__.'\ScalarNodeDefinition',
'boolean' => __NAMESPACE__.'\BooleanNodeDefinition',
'integer' => __NAMESPACE__.'\IntegerNodeDefinition',
'float' => __NAMESPACE__.'\FloatNodeDefinition',
'array' => __NAMESPACE__.'\ArrayNodeDefinition',
'enum' => __NAMESPACE__.'\EnumNodeDefinition',
);
您可以在配置中手动检查 class。 查看http://symfony.com/doc/current/cookbook/bundles/configuration.html#processing-the-configs-array此部分以获取更多信息。