<?php
namespace App\Form;
use App\Entity\User;
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\IsTrue;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
class RegistrationFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class,[
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'Nom',
])
->add('firstname', TextType::class,[
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'Prenom',
])
->add('birthday', BirthdayType::class,[
'required'=>true,
'attr'=>[
'class'=>'mb-1'
],
'label'=>'Date de naissance',
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
])
->add('adress', TextType::class,[
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'Adresse',
])
->add('postalCode', IntegerType::class,[
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'Code postal',
])
->add('city', TextType::class,[
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'ville',
])
->add('country', CountryType::class,[
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'Pays',
])
->add('phone', TelType::class,[
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'Telephone',
])
->add('email', EmailType::class,[
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'Email',
])
->add('pseudonym', TextType::class,[
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'Pseudo',
])
->add('plainPassword', PasswordType::class, [
// instead of being set onto the object directly,
// this is read and encoded in the controller
'mapped' => false,
'constraints' => [
new NotBlank([
'message' => 'Please enter a password',
]),
new Length([
'min' => 6,
'minMessage' => 'Your password should be at least {{ limit }} characters',
// max length allowed by Symfony for security reasons
'max' => 4096,
]),
],
'required'=>true,
'attr'=>[
'class'=>'form-control col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 mb-1'
],
'label_attr'=>[
'class'=>'form-label col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 text-left fontSize mb-0'
],
'label'=>'Mot de passe',
])
->add('agreeTerms', CheckboxType::class, [
'mapped' => false,
'constraints' => [
new IsTrue([
'message' => "Vous devez accepter les conditions générales d'utilisation.",
]),
],
'label'=> "J'accepte",
'label_attr'=>[
'class' => 'form-label col-xl-11 col-lg-11 col-md-11 col-sm-11 col-11 text-center align-self-center',
],
'attr'=>[
'class'=>'form-check col-xl-1 col-lg-1 col-md-1 col-sm-1 col-1 align-self-center mb-1'
],
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => User::class,
]);
}
}