Removed legacy code from NumberType

This commit is contained in:
Yonel Ceruto 2019-06-26 06:38:17 -04:00
parent 0c90809ebd
commit 148ba1feeb
3 changed files with 7 additions and 24 deletions

View File

@ -17,6 +17,7 @@ CHANGELOG
* removed the `$scale` argument of the `IntegerToLocalizedStringTransformer`
* removed `TemplatingExtension` and `TemplatingRendererEngine` classes, use Twig instead
* passing a null message when instantiating a `Symfony\Component\Form\FormError` is not allowed
* removed support for using `int` or `float` as data for the `NumberType` when the `input` option is set to `string`
4.4.0
-----

View File

@ -12,7 +12,6 @@
namespace Symfony\Component\Form\Extension\Core\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\CallbackTransformer;
use Symfony\Component\Form\Exception\LogicException;
use Symfony\Component\Form\Extension\Core\DataTransformer\NumberToLocalizedStringTransformer;
use Symfony\Component\Form\Extension\Core\DataTransformer\StringToFloatTransformer;
@ -38,19 +37,6 @@ class NumberType extends AbstractType
if ('string' === $options['input']) {
$builder->addModelTransformer(new StringToFloatTransformer($options['scale']));
$builder->addModelTransformer(new CallbackTransformer(
function ($value) {
if (\is_float($value) || \is_int($value)) {
@trigger_error(sprintf('Using the %s with float or int data when the "input" option is set to "string" is deprecated since Symfony 4.4 and will throw an exception in 5.0.', self::class), E_USER_DEPRECATED);
$value = (string) $value;
}
return $value;
},
function ($value) {
return $value;
}
));
}
}

View File

@ -78,31 +78,27 @@ class NumberTypeTest extends BaseTypeTest
}
/**
* @group legacy
* @expectedDeprecation Using the Symfony\Component\Form\Extension\Core\Type\NumberType with float or int data when the "input" option is set to "string" is deprecated since Symfony 4.4 and will throw an exception in 5.0.
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
* @expectedExceptionMessage Expected a numeric string.
*/
public function testStringInputWithFloatData(): void
{
$form = $this->factory->create(static::TESTED_TYPE, 12345.6789, [
$this->factory->create(static::TESTED_TYPE, 12345.6789, [
'input' => 'string',
'scale' => 2,
]);
$this->assertSame('12345,68', $form->createView()->vars['value']);
}
/**
* @group legacy
* @expectedDeprecation Using the Symfony\Component\Form\Extension\Core\Type\NumberType with float or int data when the "input" option is set to "string" is deprecated since Symfony 4.4 and will throw an exception in 5.0.
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
* @expectedExceptionMessage Expected a numeric string.
*/
public function testStringInputWithIntData(): void
{
$form = $this->factory->create(static::TESTED_TYPE, 12345, [
$this->factory->create(static::TESTED_TYPE, 12345, [
'input' => 'string',
'scale' => 2,
]);
$this->assertSame('12345,00', $form->createView()->vars['value']);
}
public function testDefaultFormattingWithRounding(): void