<?php
declare(strict_types=1);
/**
* @author Mehrez Labidi
* @Description il s'agit d'un modèle pour définir les différents validations utilisés dans le formulaire FormType
* Ce modèle n'interagit pas avec la base de données
*/
namespace App\Form\Models;
use App\Helper\Utils;
use App\Validator\Constraints\ContainsOnlyAlphabetic;
use App\Validator\Constraints\ContainsOnlyNumeric;
use App\Validator\Constraints\Nom;
use App\Validator\Constraints\PhoneNumber;
use App\Validator\Constraints\Prenom;
use EWZ\Bundle\RecaptchaBundle\Validator\Constraints as Recaptcha;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Constraints\IsTrue;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\NotBlank;
use App\Validator\Constraints\Message;
class ContactezNous {
public $type_contact;
public $civilite;
public $nom;
public $prenom;
public $email;
public $telephone;
public $indicatif;
public $contenu_question;
/**
* @Recaptcha\IsTrue(message="captcha invalide")
*/
public $recaptcha;
public $lang;
public $website; //Honeypot
public $company; //Honeypot
/**
* @return void
*/
public static function loadValidatorMetadata(ClassMetadata $metadata) {
$metadata->addPropertyConstraint('telephone', new PhoneNumber());
$metadata->addPropertyConstraint('nom', new Nom());
$metadata->addPropertyConstraint('prenom', new Prenom());
$metadata->addPropertyConstraint('type_contact', new NotBlank(['message' => 'le type de contact est obligatoire']));
$metadata->addPropertyConstraint('civilite', new NotBlank(['message' => 'le champ civilite est obligatoire']));
$metadata->addPropertyConstraint('nom', new NotBlank(['message' => 'le champ nom est obligatoire']));
$metadata->addPropertyConstraint('prenom', new NotBlank(['message' => 'le champ prenom est obligatoire']));
$metadata->addPropertyConstraint('contenu_question', new NotBlank(['message' => 'le champ message est obligatoire']));
$metadata->addPropertyConstraint('contenu_question', new Message());
$metadata->addPropertyConstraint('telephone', new NotBlank(['message' => 'le champ telephone est obligatoire']));
$metadata->addPropertyConstraint('email', new NotBlank(['message' => 'le champ email est obligatoire']));
$metadata->addPropertyConstraint('email', new Assert\Email(['message' => 'le champ email est invalide']));
/**
* renfort de validation: voir ici:
* https://github.com/jbafford/PasswordStrengthBundle
*/
}
/**
* @param $property
* @return mixed
*/
public function _get($property) {
return $this->$property;
}
/**
* Magic setter to save public properties.
*
* @param string $property
* @param mixed $value
*/
public function _set($property, $value) {
$this->$property = $value;
}
/**
* @return mixed
*/
public function getContenuQuestion() {
return $this->contenu_question;
}
/**
* @param mixed $contenu_question
*/
public function setContenuQuestion($contenu_question): void {
$this->contenu_question = $contenu_question;
}
}