我正在使用一个silex项目中的optionsResolver组件来解析配置选项。如果我不明确设置选项与setRequired
,setOptional
,或setDefaults
我得到一个错误Fatal error: Uncaught exception 'Symfony\Component\OptionsResolver\Exception\InvalidOptionsException' with message 'The option "option.key" does not exist. Known options are: ...
Symfony选项解析器允许无效的选项
我想允许不与这些方法定义的选项。我尝试使用自己的类来扩展类,但是类使用了很多私有方法,这些方法会要求我复制/粘贴大部分类。
有没有更好的方法来做到这一点?
我正在构建一个silex骨架。我使用它来要求/验证一些配置选项,但我需要添加未指定的其他选项。 – Yamiko 2014-11-06 22:58:15
在这种情况下,我只能将OptionsResolver用于已知的配置选项。 这样的事情(未测试): '''php $ config = array('known'=> TRUE,'unknown'=> FALSE); $ knonwKeys = array('knonw'); $ knonwOptions = array_filter($ config,function($ key){return in_array($ key,$ knownKeys); ARRAY_FILTER_USE_KEY); $ optionsResolver-> resolve($ knonwOptions); ''' (可能不会在评论中写出漂亮的代码)。 – 2014-11-07 16:10:34