Я хотел бы сделать некоторые настройки по умолчанию для своего пакета.Я хочу, чтобы пользователь мог определить:
apis:
my-awesome-api:
base_path: /foo
title: Awesome API
И вся остальная информация заполняется автоматически.Другое требование - иметь конфигурацию по умолчанию на случай, если пользователь ее не определил.
Вот что я попробовал:
->arrayNode('apis')
->isRequired()
->requiresAtLeastOneElement()
->arrayPrototype()
->children()
->arrayNode('paths')->prototype('scalar')->end()->defaultValue([])->end()
->booleanNode('enable_doc')->defaultTrue()->end()
->scalarNode('doc_factory')->defaultNull()->end()
->scalarNode('base_path')->defaultValue('/')->end()
->scalarNode('title')->defaultNull()->end()
->scalarNode('description')->defaultNull()->end()
->scalarNode('version')->defaultValue('1.0.0')->end()
->end()
->end()
->end()
Этот код фактически заполняет конфигурацию по умолчанию, но только врегистр значений не нулевой или пустой.Я бы хотел, чтобы все ключи были «существующими».Возможно ли это?
На данный момент конфигурация по умолчанию выглядит следующим образом:
apis:
main:
base_path: / # because default value is not empty or null
version: 1.0.0 # because default value is not empty or null
title: main # because of main key
Как вы можете заметить, она едва завершена.