【发布时间】:2014-06-26 10:24:32
【问题描述】:
我正在尝试验证 YAML 中的配置:
parameters:
modules:
spu-module:
path:
requires: ['spw-module']
spw-module:
path:
requires: []
使用此代码:
$rootNode
->children()
->arrayNode('modules')
->isRequired()
->prototype('array')
->children()
->arrayNode('requires')
->prototype('scalar')->end()
->end()
->scalarNode('path')->isRequired()->end()
->end()
->end()
->end()
->end()
->end();
我要测试的是检查requires: 中定义的所需模块是否存在于当前配置中。我该怎么做?
更新 我试图做这样的事情:
$rootNode
->children()
->arrayNode('modules')
->isRequired()
->prototype('array')
->children()
->arrayNode('requires')
->prototype('scalar')
->validate()
->always(function ($v) use ($rootNode) {
if (preg_match('/(spw-)(?:[a-z][a-z0-9_]*)/is', $v)) {
$rootNode
->children()
->arrayNode('yui/modules')
->children()
->arrayNode($v)
->isRequired()
->cannotBeEmpty()
->end()
->end()
->end()
->end()
->end();
}
})
->end()
->end()
->end()
->scalarNode('path')->isRequired()->end()
->end()
->end()
->end()
->end()
->end();
但这对我也不起作用。
【问题讨论】:
标签: validation symfony configuration yaml