From f564a7a11a222b0a545662276e7c897d0c684f24 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Mon, 19 Apr 2021 21:05:37 +0200 Subject: [PATCH] [Config] Use plural name on array values --- .../Component/Config/Builder/ConfigBuilderGenerator.php | 7 +++++-- .../Config/Tests/Builder/Fixtures/AddToList.config.php | 2 +- .../Component/Config/Tests/Builder/Fixtures/AddToList.php | 1 + .../Tests/Builder/Fixtures/NodeInitialValues.config.php | 2 +- .../Component/Config/Tests/Builder/GeneratedConfigTest.php | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Component/Config/Builder/ConfigBuilderGenerator.php b/src/Symfony/Component/Config/Builder/ConfigBuilderGenerator.php index 86a08a2fa6..63b309d786 100644 --- a/src/Symfony/Component/Config/Builder/ConfigBuilderGenerator.php +++ b/src/Symfony/Component/Config/Builder/ConfigBuilderGenerator.php @@ -172,17 +172,20 @@ public function NAME($valueDEFAULT): self if (null !== $parameterType || $prototype instanceof ScalarNode) { $property = $class->addProperty($node->getName()); if (null === $key = $node->getKeyAttribute()) { + // This is an array of values; don't use singular name $body = ' /** + * @param list $value * @return $this */ -public function NAME(TYPE$value): self +public function NAME(array $value): self { $this->PROPERTY = $value; return $this; }'; - $class->addMethod($methodName, $body, ['PROPERTY' => $property->getName(), 'TYPE' => '' === $parameterType ? '' : $parameterType.' ']); + + $class->addMethod($node->getName(), $body, ['PROPERTY' => $property->getName(), 'TYPE' => '' === $parameterType ? 'mixed' : $parameterType]); } else { $body = ' /** diff --git a/src/Symfony/Component/Config/Tests/Builder/Fixtures/AddToList.config.php b/src/Symfony/Component/Config/Tests/Builder/Fixtures/AddToList.config.php index ce8fbb432b..b35be9d943 100644 --- a/src/Symfony/Component/Config/Tests/Builder/Fixtures/AddToList.config.php +++ b/src/Symfony/Component/Config/Tests/Builder/Fixtures/AddToList.config.php @@ -3,7 +3,7 @@ use Symfony\Config\AddToListConfig; return static function (AddToListConfig $config) { - $config->translator()->fallback(['sv', 'fr', 'es']); + $config->translator()->fallbacks(['sv', 'fr', 'es']); $config->translator()->source('\\Acme\\Foo', 'yellow'); $config->translator()->source('\\Acme\\Bar', 'green'); diff --git a/src/Symfony/Component/Config/Tests/Builder/Fixtures/AddToList.php b/src/Symfony/Component/Config/Tests/Builder/Fixtures/AddToList.php index 66e5163a26..3be63c8f42 100644 --- a/src/Symfony/Component/Config/Tests/Builder/Fixtures/AddToList.php +++ b/src/Symfony/Component/Config/Tests/Builder/Fixtures/AddToList.php @@ -35,6 +35,7 @@ class AddToList implements ConfigurationInterface ->useAttributeAsKey('message_class') ->prototype('array') ->performNoDeepMerging() + ->fixXmlConfig('sender') ->children() ->arrayNode('senders') ->requiresAtLeastOneElement() diff --git a/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues.config.php b/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues.config.php index c7f023d0c5..4ebc4df24c 100644 --- a/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues.config.php +++ b/src/Symfony/Component/Config/Tests/Builder/Fixtures/NodeInitialValues.config.php @@ -11,5 +11,5 @@ return static function (NodeInitialValuesConfig $config) { $config->messenger() ->transports('slow_queue') ->dsn('doctrine://') - ->option(['table'=>'my_messages']); + ->options(['table'=>'my_messages']); }; diff --git a/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php b/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php index 767ebe5452..c033d70086 100644 --- a/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php +++ b/src/Symfony/Component/Config/Tests/Builder/GeneratedConfigTest.php @@ -104,7 +104,8 @@ class GeneratedConfigTest extends TestCase return new $fqcn(); } - $outputDir = sys_get_temp_dir(); + $outputDir = sys_get_temp_dir().\DIRECTORY_SEPARATOR.uniqid('sf_config_builder', true); + // This line is helpful for debugging // $outputDir = __DIR__.'/.build';