vendor/symfony/form/Extension/Core/Type/NumberType.php line 19

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Component\Form\Extension\Core\Type;
  11. use Symfony\Component\Form\AbstractType;
  12. use Symfony\Component\Form\Extension\Core\DataTransformer\NumberToLocalizedStringTransformer;
  13. use Symfony\Component\Form\FormBuilderInterface;
  14. use Symfony\Component\OptionsResolver\OptionsResolver;
  15. class NumberType extends AbstractType
  16. {
  17.     /**
  18.      * {@inheritdoc}
  19.      */
  20.     public function buildForm(FormBuilderInterface $builder, array $options)
  21.     {
  22.         $builder->addViewTransformer(new NumberToLocalizedStringTransformer(
  23.             $options['scale'],
  24.             $options['grouping'],
  25.             $options['rounding_mode']
  26.         ));
  27.     }
  28.     /**
  29.      * {@inheritdoc}
  30.      */
  31.     public function configureOptions(OptionsResolver $resolver)
  32.     {
  33.         $resolver->setDefaults([
  34.             // default scale is locale specific (usually around 3)
  35.             'scale' => null,
  36.             'grouping' => false,
  37.             'rounding_mode' => NumberToLocalizedStringTransformer::ROUND_HALF_UP,
  38.             'compound' => false,
  39.         ]);
  40.         $resolver->setAllowedValues('rounding_mode', [
  41.             NumberToLocalizedStringTransformer::ROUND_FLOOR,
  42.             NumberToLocalizedStringTransformer::ROUND_DOWN,
  43.             NumberToLocalizedStringTransformer::ROUND_HALF_DOWN,
  44.             NumberToLocalizedStringTransformer::ROUND_HALF_EVEN,
  45.             NumberToLocalizedStringTransformer::ROUND_HALF_UP,
  46.             NumberToLocalizedStringTransformer::ROUND_UP,
  47.             NumberToLocalizedStringTransformer::ROUND_CEILING,
  48.         ]);
  49.         $resolver->setAllowedTypes('scale', ['null''int']);
  50.     }
  51.     /**
  52.      * {@inheritdoc}
  53.      */
  54.     public function getBlockPrefix()
  55.     {
  56.         return 'number';
  57.     }
  58. }