<?php
namespace App\Form\User;
use App\Entity\User;
use libphonenumber\PhoneNumberUtil;
use libphonenumber\PhoneNumberFormat;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\Regex;
use Misd\PhoneNumberBundle\Form\Type\PhoneNumberType;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use App\Form\DataTransformer\StringToPhoneNumberTransformer;
/**
* Formulaire de création d'un compte utilisateur
*/
class UserCreateAccountType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('name', TextType::class, [
'label' => "Nom et Prénom",
"attr" => ['class' => "form-control", 'placeholder' => "Nom et Prénom"],
'constraints' => [
new NotBlank([
'message' => "Saisissez votre nom et prénom"
]),
// new Regex("/^[a-zA-Z\s'ÀÂÉÊÈËÌÏÎÔÙÛÇÆŒàâéêèëìïîôùûçæœ]{5,100}$/i","Le nom et prénom ne doivent pas contenir de caractère speciaux (@,_,\,/,.,$, etc..) et des chiffres.")
]
])
->add('email', EmailType::class, [
'label' => "Email",
"attr" => ['class' => "form-control", 'placeholder' => "exemple@gmail.com"],
'constraints' => [
new NotBlank([
'message' => "Saisissez votre adresse mail"
]),
new Email([
'message' => "L'adresse mail n'est pas valide"
])
]
])
->add('number', PhoneNumberType::class, [
'label'=>'Téléphone',
'widget' => PhoneNumberType::WIDGET_COUNTRY_CHOICE,
'format' => [PhoneNumberFormat::INTERNATIONAL],
'preferred_country_choices' => ['GN','FR','US','GB'],
'attr'=>['class'=>'phoneNumber'],
'invalid_message'=>"Cette valeur n'est pas un numéro de téléphone valide.",
'constraints' => [
new NotBlank([
'message' => "Saisissez votre numéro de téléphone"
])
]
])
->add('companyName', TextType::class, [
'label' => "Entreprise/Nom du projet",
"attr" => ['class' => "form-control", 'placeholder' => "Entreprise/Nom du projet"],
'constraints' => [
new NotBlank([
'message' => "Saisissez nom de votre Entreprise/Projet"
]),
// new Regex("/^[a-zA-Z\s'ÀÂÉÊÈËÌÏÎÔÙÛÇÆŒàâéêèëìïîôùûçæœ]{5,100}$/i","Les caractères speciaux non autorisé (@,_,\,/,.,$, etc..) et des chiffres.")
],
]);
// $builder->get('number')->addModelTransformer(new StringToPhoneNumberTransformer($this->phoneNumberUtil));
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => User::class,
'code_country' => "+224"
]);
}
}