Я хотел бы создать класс конфигурации Symfony, который принимает следующую конфигурацию YAML:
bundle_name:
section:
attributeAsKey:
- entry 1
- entry 2
Это тогда привело бы к массиву так:
array(
'section' => array(
'attributeAsKey' => array(
'entry1',
'entry2'
)
)
)
Я пробовал следующее, но это не работает. Что я делаю неправильно?
->arrayNode('section')
->useAttributeAsKey('attributeAsKey')
->prototype('array')
->children()
->arrayNode('entries')
->prototype('scalar')->end()
->end()
->end()
->end()
->end()
Это то, чем я занимаюсь …
->arrayNode('formats')
->useAttributeAsKey('format', true)
->prototype('array')
->beforeNormalization()
->ifTrue(function ($v) { return is_array($v) && !isset($v['mimeTypes']); })
->then(function ($v) { return array('mimeTypes' => $v); })
->end()
->children()
->arrayNode('mimeTypes')
->prototype('scalar')->end()
->end()
->end()
->end()
->end()
Возвращаемый массив имеет ключ ‘mimeTypes’, но позволяет мне определить конфигурацию следующим образом:
formats:
json:
- application/json
- application/x-json
- application/vnd.lemon+json
А также с помощью ключа «mimeTypes».
Других решений пока нет …