我想为我的捆绑包做一些默认配置。我希望用户能够定义:
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()
此代码实际上默认情况下填充配置,但仅当值不为null或为空时。我希望所有键都“存在”。有可能吗?
目前,默认配置如下:
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
您会注意到,它几乎还没有完成。
答案 0 :(得分:0)
您可以在构建配置树时使用addDefaultsIfNotSet()
功能。有关更多详细信息,请单击此处:
https://symfony.com/doc/current/components/config/definition.html#default-and-required-values