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
This commit is contained in:
commit
2f2ce3e637
@ -42,6 +42,10 @@ class ReplaceAliasByActualDefinitionPass implements CompilerPassInterface
|
|||||||
foreach ($container->getAliases() as $id => $alias) {
|
foreach ($container->getAliases() as $id => $alias) {
|
||||||
$aliasId = (string) $alias;
|
$aliasId = (string) $alias;
|
||||||
|
|
||||||
|
if ('service_container' === $aliasId) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$definition = $container->getDefinition($aliasId);
|
$definition = $container->getDefinition($aliasId);
|
||||||
} catch (InvalidArgumentException $e) {
|
} catch (InvalidArgumentException $e) {
|
||||||
|
@ -36,6 +36,8 @@ class ReplaceAliasByActualDefinitionPassTest extends \PHPUnit_Framework_TestCase
|
|||||||
$container->setAlias('a_alias', 'a');
|
$container->setAlias('a_alias', 'a');
|
||||||
$container->setAlias('b_alias', 'b');
|
$container->setAlias('b_alias', 'b');
|
||||||
|
|
||||||
|
$container->setAlias('container', 'service_container');
|
||||||
|
|
||||||
$this->process($container);
|
$this->process($container);
|
||||||
|
|
||||||
$this->assertTrue($container->has('a'), '->process() does nothing to public definitions.');
|
$this->assertTrue($container->has('a'), '->process() does nothing to public definitions.');
|
||||||
@ -47,6 +49,7 @@ class ReplaceAliasByActualDefinitionPassTest extends \PHPUnit_Framework_TestCase
|
|||||||
);
|
);
|
||||||
|
|
||||||
$this->assertSame('b_alias', $aDefinition->getFactoryService(false));
|
$this->assertSame('b_alias', $aDefinition->getFactoryService(false));
|
||||||
|
$this->assertTrue($container->has('container'));
|
||||||
|
|
||||||
$resolvedFactory = $aDefinition->getFactory(false);
|
$resolvedFactory = $aDefinition->getFactory(false);
|
||||||
$this->assertSame('b_alias', (string) $resolvedFactory[0]);
|
$this->assertSame('b_alias', (string) $resolvedFactory[0]);
|
||||||
|
@ -205,6 +205,10 @@ class NumberToLocalizedStringTransformer implements DataTransformerInterface
|
|||||||
throw new TransformationFailedException('I don\'t have a clear idea what infinity looks like');
|
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)) {
|
if (function_exists('mb_detect_encoding') && false !== $encoding = mb_detect_encoding($value, null, true)) {
|
||||||
$length = mb_strlen($value, $encoding);
|
$length = mb_strlen($value, $encoding);
|
||||||
$remainder = mb_substr($value, $position, $length, $encoding);
|
$remainder = mb_substr($value, $position, $length, $encoding);
|
||||||
|
@ -642,10 +642,17 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
|||||||
$transformer->reverseTransform("12\xc2\xa0345,678foo");
|
$transformer->reverseTransform("12\xc2\xa0345,678foo");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testReverseTransformBigint()
|
public function testReverseTransformBigInt()
|
||||||
{
|
{
|
||||||
$transformer = new NumberToLocalizedStringTransformer(null, true);
|
$transformer = new NumberToLocalizedStringTransformer(null, true);
|
||||||
|
|
||||||
$this->assertEquals(PHP_INT_MAX - 1, (int) $transformer->reverseTransform((string) (PHP_INT_MAX - 1)));
|
$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'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user