deprecate precision in IntegerToLocalizedStringTransformer
This commit is contained in:
parent
a26bd3673f
commit
65362e0ace
|
@ -55,6 +55,8 @@ Finder
|
|||
Form
|
||||
----
|
||||
|
||||
* The `$scale` argument of the `IntegerToLocalizedStringTransformer` is deprecated.
|
||||
|
||||
* Deprecated calling `FormRenderer::searchAndRenderBlock` for fields which were already rendered.
|
||||
Instead of expecting such calls to return empty strings, check if the field has already been rendered.
|
||||
|
||||
|
|
|
@ -64,6 +64,11 @@ EventDispatcher
|
|||
|
||||
* The `TraceableEventDispatcherInterface` has been removed.
|
||||
|
||||
Form
|
||||
----
|
||||
|
||||
* The `$scale` argument of the `IntegerToLocalizedStringTransformer` was removed.
|
||||
|
||||
Finder
|
||||
------
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ CHANGELOG
|
|||
4.2.0
|
||||
-----
|
||||
|
||||
* deprecated the `$scale` argument of the `IntegerToLocalizedStringTransformer`
|
||||
* added `Symfony\Component\Form\ClearableErrorsInterface`
|
||||
* deprecated calling `FormRenderer::searchAndRenderBlock` for fields which were already rendered
|
||||
|
||||
|
|
|
@ -22,12 +22,18 @@ class IntegerToLocalizedStringTransformer extends NumberToLocalizedStringTransfo
|
|||
/**
|
||||
* Constructs a transformer.
|
||||
*
|
||||
* @param int $scale Unused
|
||||
* @param bool $grouping Whether thousands should be grouped
|
||||
* @param int $roundingMode One of the ROUND_ constants in this class
|
||||
*/
|
||||
public function __construct(?int $scale = 0, ?bool $grouping = false, int $roundingMode = self::ROUND_DOWN)
|
||||
public function __construct($grouping = false, $roundingMode = self::ROUND_DOWN)
|
||||
{
|
||||
if (\is_int($grouping) || \is_bool($roundingMode) || 2 < \func_num_args()) {
|
||||
@trigger_error(sprintf('Passing a precision as the first value to %s::__construct() is deprecated since Symfony 4.2 and support for it will be dropped in 5.0.', __CLASS__), E_USER_DEPRECATED);
|
||||
|
||||
$grouping = $roundingMode;
|
||||
$roundingMode = 2 < \func_num_args() ? func_get_arg(2) : self::ROUND_DOWN;
|
||||
}
|
||||
|
||||
parent::__construct(0, $grouping, $roundingMode);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,12 +23,7 @@ class IntegerType extends AbstractType
|
|||
*/
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->addViewTransformer(
|
||||
new IntegerToLocalizedStringTransformer(
|
||||
$options['scale'],
|
||||
$options['grouping'],
|
||||
$options['rounding_mode']
|
||||
));
|
||||
$builder->addViewTransformer(new IntegerToLocalizedStringTransformer($options['grouping'], $options['rounding_mode']));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -79,6 +79,18 @@ class IntegerToLocalizedStringTransformerTest extends TestCase
|
|||
* @dataProvider transformWithRoundingProvider
|
||||
*/
|
||||
public function testTransformWithRounding($input, $output, $roundingMode)
|
||||
{
|
||||
$transformer = new IntegerToLocalizedStringTransformer(null, $roundingMode);
|
||||
|
||||
$this->assertEquals($output, $transformer->transform($input));
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
* @expectedDeprecation Passing a precision as the first value to %s::__construct() is deprecated since Symfony 4.2 and support for it will be dropped in 5.0.
|
||||
* @dataProvider transformWithRoundingProvider
|
||||
*/
|
||||
public function testTransformWithRoundingUsingLegacyConstructorSignature($input, $output, $roundingMode)
|
||||
{
|
||||
$transformer = new IntegerToLocalizedStringTransformer(null, null, $roundingMode);
|
||||
|
||||
|
@ -114,6 +126,25 @@ class IntegerToLocalizedStringTransformerTest extends TestCase
|
|||
|
||||
\Locale::setDefault('de_DE');
|
||||
|
||||
$transformer = new IntegerToLocalizedStringTransformer(true);
|
||||
|
||||
$this->assertEquals(1234, $transformer->reverseTransform('1.234,5'));
|
||||
$this->assertEquals(12345, $transformer->reverseTransform('12.345,912'));
|
||||
$this->assertEquals(1234, $transformer->reverseTransform('1234,5'));
|
||||
$this->assertEquals(12345, $transformer->reverseTransform('12345,912'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
* @expectedDeprecation Passing a precision as the first value to %s::__construct() is deprecated since Symfony 4.2 and support for it will be dropped in 5.0.
|
||||
*/
|
||||
public function testReverseTransformWithGroupingUsingLegacyConstructorSignature()
|
||||
{
|
||||
// Since we test against "de_DE", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_DE');
|
||||
|
||||
$transformer = new IntegerToLocalizedStringTransformer(null, true);
|
||||
|
||||
$this->assertEquals(1234, $transformer->reverseTransform('1.234,5'));
|
||||
|
@ -177,6 +208,18 @@ class IntegerToLocalizedStringTransformerTest extends TestCase
|
|||
* @dataProvider reverseTransformWithRoundingProvider
|
||||
*/
|
||||
public function testReverseTransformWithRounding($input, $output, $roundingMode)
|
||||
{
|
||||
$transformer = new IntegerToLocalizedStringTransformer(null, $roundingMode);
|
||||
|
||||
$this->assertEquals($output, $transformer->reverseTransform($input));
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
* @expectedDeprecation Passing a precision as the first value to %s::__construct() is deprecated since Symfony 4.2 and support for it will be dropped in 5.0.
|
||||
* @dataProvider reverseTransformWithRoundingProvider
|
||||
*/
|
||||
public function testReverseTransformWithRoundingUsingLegacyConstructorSignature($input, $output, $roundingMode)
|
||||
{
|
||||
$transformer = new IntegerToLocalizedStringTransformer(null, null, $roundingMode);
|
||||
|
||||
|
|
Reference in New Issue