From 887757ef9b188b8ee34c8c4fa19aa28e23576c8b Mon Sep 17 00:00:00 2001 From: Vincent Langlet Date: Wed, 8 Jan 2025 22:20:53 +0100 Subject: [PATCH] Allow whitespace in types --- .../Component/OptionsResolver/OptionsResolver.php | 1 + .../OptionsResolver/Tests/OptionsResolverTest.php | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/Symfony/Component/OptionsResolver/OptionsResolver.php b/src/Symfony/Component/OptionsResolver/OptionsResolver.php index e85465fa85ce4..51e95c4f32ca4 100644 --- a/src/Symfony/Component/OptionsResolver/OptionsResolver.php +++ b/src/Symfony/Component/OptionsResolver/OptionsResolver.php @@ -1141,6 +1141,7 @@ public function offsetGet(mixed $option, bool $triggerDeprecation = true): mixed private function verifyTypes(string $type, mixed $value, ?array &$invalidTypes = null, int $level = 0): bool { + $type = trim($type); $allowedTypes = $this->splitOutsideParenthesis($type); if (\count($allowedTypes) > 1) { foreach ($allowedTypes as $allowedType) { diff --git a/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php b/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php index b051b49af83bb..96faa09b07d83 100644 --- a/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php +++ b/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php @@ -790,6 +790,18 @@ public function testResolveTypedWithUnion() $this->assertSame(['foo' => '1'], $options); } + public function testResolveTypedWithUnionAndWhitespaces() + { + $this->resolver->setDefined('foo'); + $this->resolver->setAllowedTypes('foo', 'string | int'); + + $options = $this->resolver->resolve(['foo' => 1]); + $this->assertSame(['foo' => 1], $options); + + $options = $this->resolver->resolve(['foo' => '1']); + $this->assertSame(['foo' => '1'], $options); + } + public function testResolveTypedWithUnionOfClasse() { $this->resolver->setDefined('foo');