<?php
namespace App\Component\ReCaptcha\Form;
use App\Component\ReCaptcha\EventSubscriber\ReCaptchaEventSubscriber;
use ReCaptcha\ReCaptcha;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Contracts\Translation\TranslatorInterface;
class ReCaptchaType extends AbstractType
{
private const BLOCK_PREFIX = 'recaptcha';
protected ReCaptcha $reCaptcha;
protected TranslatorInterface $translator;
public function __construct(ReCaptcha $reCaptcha, TranslatorInterface $translator)
{
$this->reCaptcha = $reCaptcha;
$this->translator = $translator;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->addEventSubscriber(new ReCaptchaEventSubscriber($this->reCaptcha, $this->translator));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'mapped' => false,
]);
}
public function getBlockPrefix(): string
{
return self::BLOCK_PREFIX;
}
}