X-Git-Url: https://git.rapsys.eu/packbundle/blobdiff_plain/1e261bd3495a7b730972d5a903de6b2ecc9cc1e8..f06acce2c1058d581657163417952723ff6d71cd:/Form/CaptchaType.php
diff --git a/Form/CaptchaType.php b/Form/CaptchaType.php
index d479b47..83f3b1b 100644
--- a/Form/CaptchaType.php
+++ b/Form/CaptchaType.php
@@ -14,14 +14,14 @@ namespace Rapsys\PackBundle\Form;
use Rapsys\PackBundle\Util\ImageUtil;
use Rapsys\PackBundle\Util\SluggerUtil;
-use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\FormBuilderInterface;
-use Symfony\Component\Form\FormEvents;
-use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormError;
+use Symfony\Component\Form\FormEvent;
+use Symfony\Component\Form\FormEvents;
+use Symfony\Contracts\Translation\TranslatorInterface;
/**
* Captcha Type class definition
@@ -29,57 +29,37 @@ use Symfony\Component\Form\FormError;
* @see https://symfony.com/doc/current/form/create_custom_field_type.html
*/
class CaptchaType extends AbstractType {
- /**
- * @var ImageUtil $image
- */
- private $image;
-
- /**
- * @var SluggerUtil $slugger
- */
- private $slugger;
-
- /**
- * @var Translator instance
- */
- private $translator;
-
/**
* Constructor
*
- * @param ImageUtil $image
- * @param SluggerUtil $slugger
- * @param TranslatorInterface $translator The translator instance
+ * @param ?ImageUtil $image
+ * @param ?SluggerUtil $slugger
+ * @param ?TranslatorInterface $translator The translator instance
*/
- public function __construct(ImageUtil $image, SluggerUtil $slugger, TranslatorInterface $translator) {
- //Set image
- $this->image = $image;
-
- //Set slugger
- $this->slugger = $slugger;
-
- //Set translator
- $this->translator = $translator;
+ public function __construct(protected ?ImageUtil $image = null, protected ?SluggerUtil $slugger = null, protected ?TranslatorInterface $translator = null) {
}
/**
- * Build form
- *
* {@inheritdoc}
+ *
+ * Build form
*/
- public function buildForm(FormBuilderInterface $builder, array $options) {
- //Set captcha
- $captcha = $this->image->getCaptcha((new \DateTime('-1 year'))->getTimestamp());
+ public function buildForm(FormBuilderInterface $builder, array $options): void {
+ //With image, slugger and translator
+ if ($this->image !== null && $this->slugger !== null && $this->translator !== null) {
+ //Set captcha
+ $captcha = $this->image->getCaptcha((new \DateTime('-1 year'))->getTimestamp());
- //Add captcha token
- $builder->add('_captcha_token', HiddenType::class, ['data' => $captcha['token'], 'empty_data' => $captcha['token']]);
+ //Add captcha token
+ $builder->add('_captcha_token', HiddenType::class, ['data' => $captcha['token'], 'empty_data' => $captcha['token'], 'mapped' => false]);
- //Add captcha
- $builder->add('captcha', IntegerType::class, ['label_attr' => ['class' => 'captcha'], 'label' => '', 'label_html' => true, 'translation_domain' => false]);
+ //Add captcha
+ $builder->add('captcha', IntegerType::class, ['label_attr' => ['class' => 'captcha'], 'label' => '', 'label_html' => true, 'mapped' => false, 'translation_domain' => false]);
- //Add event listener on captcha
- $builder->addEventListener(FormEvents::PRE_SUBMIT, [$this, 'validateCaptcha']);
- }
+ //Add event listener on captcha
+ $builder->addEventListener(FormEvents::PRE_SUBMIT, [$this, 'validateCaptcha']);
+ }
+ }
/**
* Validate captcha