src/Form/PhoneNumberType.php line 11

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Component\Configuration\Util\Config;
  4. use Misd\PhoneNumberBundle\Form\Type\PhoneNumberType as MisdPhoneNumberType;
  5. use Misd\PhoneNumberBundle\Validator\Constraints\PhoneNumber as PhoneNumberConstraint;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\OptionsResolver\OptionsResolver;
  8. class PhoneNumberType extends AbstractType
  9. {
  10.     /**
  11.      * PhoneNumberType Constructor.
  12.      */
  13.     public function __construct(
  14.         private readonly Config $config,
  15.     ) {
  16.     }
  17.     /**
  18.      * {@inheritdoc}
  19.      */
  20.     public function configureOptions(OptionsResolver $resolver)
  21.     {
  22.         if ($this->config->get('phone_use_country_select_widget')) {
  23.             $resolver->setDefaults([
  24.                 'preferred_country_choices' => [$this->config->get('site_default_phone_country'), ...$this->config->get('site_preferred_phone_countries')],
  25.                 'default_region' => $this->config->get('site_default_phone_country'),
  26.                 'widget' => MisdPhoneNumberType::WIDGET_COUNTRY_CHOICE,
  27.                 'attr' => [
  28.                     'class' => 'localized-phone-number',
  29.                 ],
  30.                 'country_choices' => $this->config->get('site_phone_country_choices'),
  31.             ]);
  32.         }
  33.         $resolver->setDefaults([
  34.             'html5' => true,
  35.             'constraints' => [new PhoneNumberConstraint()],
  36.         ]);
  37.     }
  38.     /**
  39.      * {@inheritdoc}
  40.      */
  41.     public function getParent()
  42.     {
  43.         if ($this->config->get('phone_use_country_select_widget')) {
  44.             return TelCountrySelectType::class;
  45.         }
  46.         return TelType::class;
  47.     }
  48.     /**
  49.      * {@inheritdoc}
  50.      */
  51.     public function getBlockPrefix()
  52.     {
  53.         if ($this->config->get('phone_use_country_select_widget')) {
  54.             return 'country_select';
  55.         }
  56.         return 'phone';
  57.     }
  58. }