Skip to content

Commit 3c0c48f

Browse files
committed
fix ConfigurationDefaultParametersTest::testEmptyDefaultParameters
1 parent b2680b8 commit 3c0c48f

2 files changed

Lines changed: 29 additions & 2 deletions

File tree

src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,8 +392,9 @@ private function registerCommonConfiguration(ContainerBuilder $container, array
392392
$container->setAlias('api_platform.name_converter', $config['name_converter']);
393393
}
394394
$container->setParameter('api_platform.asset_package', $config['asset_package']);
395-
$container->setParameter('api_platform.defaults', $this->normalizeDefaults($config['defaults'] ?? []));
396-
$container->setParameter('api_platform.defaults.parameters', []);
395+
$normalizedDefaults = $this->normalizeDefaults($config['defaults'] ?? []);
396+
$container->setParameter('api_platform.defaults', $normalizedDefaults);
397+
$container->setParameter('api_platform.defaults.parameters', $config['defaults']['parameters'] ?? []);
397398

398399
if ($container->getParameter('kernel.debug')) {
399400
$container->removeDefinition('api_platform.serializer.mapping.cache_class_metadata_factory');
@@ -422,6 +423,7 @@ private function normalizeDefaults(array $defaults): array
422423
{
423424
$normalizedDefaults = ['extra_properties' => $defaults['extra_properties'] ?? []];
424425
unset($defaults['extra_properties']);
426+
unset($defaults['parameters']);
425427

426428
$rc = new \ReflectionClass(ApiResource::class);
427429
$publicProperties = [];

src/Symfony/Bundle/DependencyInjection/Configuration.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,31 @@ private function addDefaultsSection(ArrayNodeDefinition $rootNode): void
655655
$this->defineDefault($defaultsNode, new \ReflectionClass(ApiResource::class), $nameConverter);
656656
$this->defineDefault($defaultsNode, new \ReflectionClass(Put::class), $nameConverter);
657657
$this->defineDefault($defaultsNode, new \ReflectionClass(Post::class), $nameConverter);
658+
659+
$defaultsNode
660+
->children()
661+
->arrayNode('parameters')
662+
->info('Global parameters applied to all resources and operations.')
663+
->useAttributeAsKey('parameter_class')
664+
->prototype('array')
665+
->ignoreExtraKeys(false)
666+
->children()
667+
->scalarNode('key')->info('The parameter key/name.')->end()
668+
->booleanNode('required')->defaultFalse()->info('Whether the parameter is required.')->end()
669+
->scalarNode('description')->defaultNull()->info('The parameter description.')->end()
670+
->scalarNode('property')->defaultNull()->info('The property mapped to this parameter.')->end()
671+
->variableNode('default')->defaultNull()->info('The default value of the parameter.')->end()
672+
->variableNode('schema')->defaultNull()->info('The JSON schema of the parameter.')->end()
673+
->scalarNode('filter')->defaultNull()->info('The filter service ID for the parameter.')->end()
674+
->integerNode('priority')->defaultNull()->info('The priority of the parameter.')->end()
675+
->booleanNode('hydra')->defaultNull()->info('Include this parameter in Hydra documentation.')->end()
676+
->variableNode('constraints')->defaultNull()->info('Validation constraints.')->end()
677+
->scalarNode('security')->defaultNull()->info('The security expression.')->end()
678+
->scalarNode('security_message')->defaultNull()->info('The security message.')->end()
679+
->end()
680+
->end()
681+
->end()
682+
->end();
658683
}
659684

660685
private function addMakerSection(ArrayNodeDefinition $rootNode): void

0 commit comments

Comments
 (0)