<?php
declare(strict_types=1);
namespace App\Form;
use App\Entity\ContactData;
use App\Form\Type\ReCaptchaType;
use App\Type\ContactResponseType;
use App\Validator\Constraints\IsEqualToCurrentCode;
use EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaType;
use EWZ\Bundle\RecaptchaBundle\Validator\Constraints\IsTrue as EWZCaptchaIsTrue;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Regex;
class ContactFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', null, [
'constraints' => [
new NotBlank([
'message' => 'pages.contact.form.validation.name.notBlank',
]),
new Length([
'min' => 2,
'max' => 50,
'minMessage' => 'pages.contact.form.validation.name.tooShort',
'maxMessage' => 'pages.contact.form.validation.name.tooLong',
])
],
])
->add('email', EmailType::class, [
'constraints' => [
new NotBlank([
'message' => 'pages.contact.form.validation.email.notBlank',
]),
new Email([
'message' => 'pages.contact.form.validation.email.invalid',
]),
],
])
->add('content', TextareaType::class, [
'constraints' => [
new NotBlank([
'message' => 'pages.contact.form.validation.content.notBlank',
]),
new Length([
'min' => 10,
'max' => 5000,
'minMessage' => 'pages.contact.form.validation.content.tooShort',
'maxMessage' => 'pages.contact.form.validation.content.tooLong',
]),
],
])
->add("rtcp", HiddenType::class, [
'constraints' => [
new NotBlank([
'message' => 'pages.contact.form.validation.rtcp.notBlank',
]),
new IsEqualToCurrentCode([
'message' => 'pages.contact.form.validation.rtcp.isEqualToCurrentCode',
]),
],
])
->add('recaptcha', EWZRecaptchaType::class, [
"mapped" => false,
'constraints' => [
new EWZCaptchaIsTrue([
'message' => 'pages.contact.form.validation.recaptcha.notValid',
]),
],
])
->add('send', SubmitType::class);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(['csrf_protection' => false]);
}
}