Mémos

M é m o - l a b .

Formulaires – Validation

Ce chapitre est un complément des chapitres I et II sur les formulaires. Il explique comment intégrer des contraintes de validation à chaque champ du formulaire. Ces contraintes de validation sont par exemple : le champ ne doit pas être vide ; le champ ne peut pas dépasser 255 caractères ; le champ doit contenir une adresse mail … .

Pour gérer ces contraintes de validation, plusieurs possibilités sont envisageables. Celle retenue ici est l’utilisation de la librairie symfony/validator intégrée nativement dans le framework symfony.
Dans un premier temps, il faut installer cette librairie. Dans une console (cmder, invite de commande …), il suffit de se placer au niveau du dossier du thème et de lancer la commande composer require symfony/validator. Puis dans le fichier functions.php, il faut charger l’autoload de composer en entrant le code suivant : <?php require_once 'vendor/autoload.php'; ?>

La compréhension par le code





Template.php

<?php
// A placer en premières lignes du template
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Constraints as Assert;

...

// Cette partie remplace le commentaire des chapitres
// Formulaires - Bases ou Formulaires - aller plus loin
$validator = Validation::createValidator();

$lastname_violation = $validator->validate($lastname, [
    new Assert\NotBlank(),
    new Assert\Length(['max' => 255])
]);
$lastname_violation = $validator->validate($email, [
    new Assert\NotBlank(),
    new Assert\Email()
]);
$message_violation = $validator->validate($place, [
    new Assert\NotBlank()
]);

if (0 === count($lastname_violation) && 0 === count($message_violation)) {
    wp_insert_post([...]);
}
?>