vendor/victor-prdh/recaptcha-bundle/src/Form/ReCaptchaType.php line 24

Open in your IDE?
  1. <?php
  2. namespace VictorPrdh\RecaptchaBundle\Form;
  3. use LogicException;
  4. use VictorPrdh\RecaptchaBundle\EventListener\ReCaptchaBundleValidationListener;
  5. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  6. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  7. use ReCaptcha\ReCaptcha;
  8. use Symfony\Component\Form\AbstractType;
  9. use Symfony\Component\Form\FormBuilderInterface;
  10. use Symfony\Component\Form\FormInterface;
  11. use Symfony\Component\Form\FormView;
  12. use Symfony\Component\HttpFoundation\RequestStack;
  13. use Symfony\Component\OptionsResolver\OptionsResolver;
  14. use Symfony\Component\Validator\Constraints\Callback;
  15. use Symfony\Component\Validator\Context\ExecutionContextInterface;
  16. use Symfony\Contracts\Translation\TranslatorInterface;
  17. use VictorPrdh\RecaptchaBundle\Validator\Constraints\IsValidCaptcha;
  18. /**
  19.  * Class ReCaptchaType.
  20.  */
  21. class ReCaptchaType extends AbstractType
  22. {
  23.     /**
  24.      * @var ReCaptcha
  25.      */
  26.     private $reCaptcha;
  27.     /**
  28.      * @var ParameterBagInterface
  29.      */
  30.     private ParameterBagInterface $parameterBag;
  31.     /**
  32.      * ReCaptchaType constructor.
  33.      *
  34.      * @param ReCaptcha $reCaptcha
  35.      */
  36.     public function __construct(ParameterBagInterface $parameterBag)
  37.     {
  38.         $this->parameterBag $parameterBag;
  39.         $this->reCaptcha = new ReCaptcha($this->parameterBag->get('victor_prdh_recaptcha.google_secret_key'));
  40.     }
  41.     
  42.     /**
  43.      * @inheritDoc
  44.      */
  45.     public function buildView(FormView $viewFormInterface $form, array $options)
  46.     {
  47.         $view->vars['type'] = $options['type'];
  48.         $view->vars['google_site_key'] = $this->parameterBag->get('victor_prdh_recaptcha.google_site_key');
  49.     }
  50.     /**
  51.      * {@inheritdoc}
  52.      */
  53.     public function getParent(): ?string
  54.     {
  55.         return HiddenType::class;
  56.     }
  57.     public function getBlockPrefix(): string
  58.     {
  59.         return 'recaptcha';
  60.     }
  61.     /**
  62.      * @inheritDoc
  63.      */
  64.     public function configureOptions(OptionsResolver $resolver)
  65.     {
  66.         $resolver
  67.             ->setDefault('type''checkbox')
  68.             ->setDefault('mapped'false)
  69.             ->setDefault('error_bubbling'false)
  70.             ->setDefault('constraints',new IsValidCaptcha())
  71.             ->setAllowedValues('type', ['checkbox''invisible']);
  72.     }
  73. }