Я сделал свой собственный Symfony пакет для некоторых базовых c связанных с API вещей, которые я повторно использую в проектах (в настоящее время используется в проекте sf5).
Однако сегодня он дошел до моего Обратите внимание, что что-то не работает (или даже не работает), как я и думал.
Моя конфигурация (здесь только один узел) определена как:
...
private function addSerializerNode()
{
$treeBuilder = new TreeBuilder('serializer');
$node = $treeBuilder->getRootNode();
$node
->children()
->arrayNode('default_context')
->scalarPrototype()->end()
->end()
->end();
return $node;
}
...
Кажется, не корректно переопределить при настройке моей конфигурации, как:
// config/packages/lens_api.yaml
lens_api:
serializer:
default_context:
json_encode_options: 320
Затем я пытаюсь переопределить индекс (в dev), используя:
// config/packages/dev/lens_api.yaml
lens_api:
serializer:
default_context:
json_encode_options: 448
Сброс загруженной конфигурации в результате:
^ array:4 [▼
"serializer" => array:2 [▼
"default_context" => array:3 [▼
"circular_reference_handler" => "Lens\Bundle\ApiBundle\Serializer\CircularReferenceHandler"
"json_encode_options" => 320
0 => 448
]
"id" => "hello"
]
...
]
Как видно, индекс конфигурации dev добавляется как 0, не заменяя первоначальное значение. Есть ли способ обойти это поведение? Предпочтительно, кроме определения каждого возможного параметра в arrayNode
с использованием scalarNode
s.