我正在使用 OptionsResolver component在类里面设置我的默认设置。由于我有大量参数,因此我创建了一个多维数组:
<?php
$resolver = new OptionsResolver();
$resolver->setDefaults([
'db' => [
'hostname' => 'localhost',
'username' => 'root'
]
]);
?>
现在我想否决用户名,而不是主机名。如果我这样做
$resolver->resolve(['db' => ['username' => 'test']);
hostname
参数不见了。
我可以使用 OptionsResolver 组件创建多维数组吗?
最佳答案
目前不支持。然而,我已经看到这种方法被使用,如果我记得的话,甚至在 Symfony 本身也是如此。
$resolver = new OptionsResolver();
$resolver
->setRequired(array(
'db'
))
->setAllowedTypes(array(
'db' => 'array'
))
;
$dbResolver = new OptionsResolver();
$dbResolver
->setDefaults(array(
'hostname',
'username'
))
->setAllowedTypes(array(
'hostname' => 'string',
'username' => 'string'
))
;
$options = $resolver->resolve($options);
$options['db'] = $dbResolver->resolve($options['db']);
关于php - 在 OptionsResolver 中使用多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29962179/