Skip to content

Commit 2f2ce3e

Browse files
Merge branch '2.3' into 2.7
* 2.3: [Form] NumberToLocalizedStringTransformer should return floats when possible [DependencyInjection] Enabled alias for service_container Conflicts: src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php
2 parents 9d7f85e + 56d3c26 commit 2f2ce3e

File tree

4 files changed

+19
-1
lines changed

4 files changed

+19
-1
lines changed

src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ public function process(ContainerBuilder $container)
4242
foreach ($container->getAliases() as $id => $alias) {
4343
$aliasId = (string) $alias;
4444

45+
if ('service_container' === $aliasId) {
46+
continue;
47+
}
48+
4549
try {
4650
$definition = $container->getDefinition($aliasId);
4751
} catch (InvalidArgumentException $e) {

src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ public function testProcess()
3636
$container->setAlias('a_alias', 'a');
3737
$container->setAlias('b_alias', 'b');
3838

39+
$container->setAlias('container', 'service_container');
40+
3941
$this->process($container);
4042

4143
$this->assertTrue($container->has('a'), '->process() does nothing to public definitions.');
@@ -47,6 +49,7 @@ public function testProcess()
4749
);
4850

4951
$this->assertSame('b_alias', $aDefinition->getFactoryService(false));
52+
$this->assertTrue($container->has('container'));
5053

5154
$resolvedFactory = $aDefinition->getFactory(false);
5255
$this->assertSame('b_alias', (string) $resolvedFactory[0]);

src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,10 @@ public function reverseTransform($value)
205205
throw new TransformationFailedException('I don\'t have a clear idea what infinity looks like');
206206
}
207207

208+
if (is_int($result) && $result === (int) $float = (float) $result) {
209+
$result = $float;
210+
}
211+
208212
if (function_exists('mb_detect_encoding') && false !== $encoding = mb_detect_encoding($value, null, true)) {
209213
$length = mb_strlen($value, $encoding);
210214
$remainder = mb_substr($value, $position, $length, $encoding);

src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -642,10 +642,17 @@ public function testReverseTransformDisallowsTrailingExtraCharactersMultibyte()
642642
$transformer->reverseTransform("12\xc2\xa0345,678foo");
643643
}
644644

645-
public function testReverseTransformBigint()
645+
public function testReverseTransformBigInt()
646646
{
647647
$transformer = new NumberToLocalizedStringTransformer(null, true);
648648

649649
$this->assertEquals(PHP_INT_MAX - 1, (int) $transformer->reverseTransform((string) (PHP_INT_MAX - 1)));
650650
}
651+
652+
public function testReverseTransformSmallInt()
653+
{
654+
$transformer = new NumberToLocalizedStringTransformer(null, true);
655+
656+
$this->assertSame(1.0, $transformer->reverseTransform('1'));
657+
}
651658
}

0 commit comments

Comments
 (0)