vendor/sylius/sylius/src/Sylius/Bundle/MoneyBundle/Form/Type/MoneyType.php line 23

Open in your IDE?
  1. <?php
  2. /*
  3. * This file is part of the Sylius package.
  4. *
  5. * (c) Paweł Jędrzejewski
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. declare(strict_types=1);
  11. namespace Sylius\Bundle\MoneyBundle\Form\Type;
  12. use Sylius\Bundle\MoneyBundle\Form\DataTransformer\SyliusMoneyTransformer;
  13. use Symfony\Component\Form\AbstractType;
  14. use Symfony\Component\Form\FormBuilderInterface;
  15. use Symfony\Component\Form\FormInterface;
  16. use Symfony\Component\Form\FormView;
  17. use Symfony\Component\OptionsResolver\OptionsResolver;
  18. final class MoneyType extends AbstractType
  19. {
  20. public function buildForm(FormBuilderInterface $builder, array $options): void
  21. {
  22. $builder
  23. ->resetViewTransformers()
  24. ->addViewTransformer(new SyliusMoneyTransformer(
  25. $options['scale'],
  26. $options['grouping'],
  27. null,
  28. $options['divisor'],
  29. ))
  30. ;
  31. }
  32. /**
  33. * @psalm-suppress MissingPropertyType
  34. */
  35. public function buildView(FormView $view, FormInterface $form, array $options): void
  36. {
  37. $view->vars['currency'] = $options['currency'];
  38. }
  39. public function getParent(): string
  40. {
  41. return \Symfony\Component\Form\Extension\Core\Type\MoneyType::class;
  42. }
  43. public function configureOptions(OptionsResolver $resolver): void
  44. {
  45. $resolver
  46. ->setDefaults([
  47. 'divisor' => 100,
  48. ])
  49. ;
  50. }
  51. public function getBlockPrefix(): string
  52. {
  53. return 'sylius_money';
  54. }
  55. }