From 6161438f57458d78b494b4cde3542a550d6232d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Haso=C5=88?= Date: Thu, 25 Feb 2016 23:33:26 +0100 Subject: [PATCH 1/2] [DependencyInjection] Enabled alias for service_container --- .../Compiler/ReplaceAliasByActualDefinitionPass.php | 4 ++++ .../Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php b/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php index fef070bcff..6a6b214bb3 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php @@ -42,6 +42,10 @@ class ReplaceAliasByActualDefinitionPass implements CompilerPassInterface foreach ($container->getAliases() as $id => $alias) { $aliasId = (string) $alias; + if ('service_container' === $aliasId) { + continue; + } + try { $definition = $container->getDefinition($aliasId); } catch (InvalidArgumentException $e) { diff --git a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php index ac1609f5d7..c4470dd402 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php @@ -32,6 +32,8 @@ class ReplaceAliasByActualDefinitionPassTest extends \PHPUnit_Framework_TestCase $container->setAlias('a_alias', 'a'); $container->setAlias('b_alias', 'b'); + $container->setAlias('container', 'service_container'); + $this->process($container); $this->assertTrue($container->has('a'), '->process() does nothing to public definitions.'); @@ -42,6 +44,7 @@ class ReplaceAliasByActualDefinitionPassTest extends \PHPUnit_Framework_TestCase '->process() replaces alias to actual.' ); $this->assertSame('b_alias', $aDefinition->getFactoryService()); + $this->assertTrue($container->has('container')); } /** From f5ed09c64cb44277443a7619c6bc8870a707666f Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 30 Mar 2016 09:21:26 +0200 Subject: [PATCH 2/2] [Form] NumberToLocalizedStringTransformer should return floats when possible --- .../NumberToLocalizedStringTransformer.php | 4 ++++ .../NumberToLocalizedStringTransformerTest.php | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php index a18eb957b5..ab11efbf14 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php @@ -140,6 +140,10 @@ class NumberToLocalizedStringTransformer implements DataTransformerInterface throw new TransformationFailedException('I don\'t have a clear idea what infinity looks like'); } + if (is_int($result) && $result === (int) $float = (float) $result) { + $result = $float; + } + if (function_exists('mb_detect_encoding') && false !== $encoding = mb_detect_encoding($value, null, true)) { $length = mb_strlen($value, $encoding); $remainder = mb_substr($value, $position, $length, $encoding); diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php index 87cdf964c8..4e2c6a18d9 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php @@ -434,10 +434,17 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase $transformer->reverseTransform("12\xc2\xa0345,678foo"); } - public function testReverseTransformBigint() + public function testReverseTransformBigInt() { $transformer = new NumberToLocalizedStringTransformer(null, true); $this->assertEquals(PHP_INT_MAX - 1, (int) $transformer->reverseTransform((string) (PHP_INT_MAX - 1))); } + + public function testReverseTransformSmallInt() + { + $transformer = new NumberToLocalizedStringTransformer(null, true); + + $this->assertSame(1.0, $transformer->reverseTransform('1')); + } }