Respect/Validation PHP : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Respect/Validation pour PHP : guide complet avec exemples

Respect/Validation est une bibliothèque de validation de données puissante et élégante pour PHP. Contrairement aux fonctions PHP natives (comme filter_var ou les expressions régulières), Respect/Validation propose une interface orientée objet et chaînable (fluent) pour construire des règles de validation complexes. La bibliothèque permet de créer des vérifications lisibles et auto-documentées, faciles à maintenir et à étendre.

Pourquoi utiliser cette bibliothèque ? Dans toute application web, il est nécessaire de vérifier les saisies utilisateur : email, mots de passe, URL, adresses IP, dates, plages numériques, etc. Sans système de validation, le code se transforme rapidement en un enchevêtrement de if-else et d'expressions régulières. Respect/Validation résout ce problème en fournissant plus de 100 règles prêtes à l'emploi (validateurs) que vous pouvez combiner pour créer des chaînes de vérification complexes. La bibliothèque prend également en charge les messages d'erreur personnalisés dans différentes langues, ce qui en fait un choix idéal pour les projets internationaux.

La fonctionnalité clé est le chaînage de validation. Vous pouvez enchaîner plusieurs règles en une seule chaîne, et elles seront appliquées séquentiellement. Si au moins une règle échoue, la validation s'arrête (par défaut) et une erreur est renvoyée. Cela permet d'écrire un code compact mais très expressif.

Installation

L'installation se fait via Composer, le gestionnaire de paquets standard pour PHP. Exécutez la commande suivante dans le terminal à la racine de votre projet :

composer require respect/validation

Après l'installation, incluez l'autoloader de Composer dans votre fichier PHP :

require_once 'vendor/autoload.php';

Démarrage rapide

Un exemple minimal pour valider un email et un mot de passe :

use Respect\Validation\Validator as v;

$email = 'user@example.com';
$password = 'StrongP@ss1';

// Création d'une chaîne de validation
$validator = v::email()->length(6, 100)->notEmpty();

if ($validator->validate($email)) {
    echo "Email valide !";
} else {
    // Récupération du tableau d'erreurs
    $errors = $validator->getMessages();
    print_r($errors);
}

// Validation du mot de passe
$passwordValidator = v::alnum()->noWhitespace()->length(8, 32);
if ($passwordValidator->validate($password)) {
    echo "Mot de passe valide !";
}

Dans cet exemple, v::email() vérifie le format de l'email, length(6, 100) contrôle la longueur de la chaîne, et notEmpty() s'assure que la valeur n'est pas vide. Toutes les règles sont enchaînées.

Méthodes et classes principales

Voici 8 méthodes (règles) essentielles de la bibliothèque. Chaque règle est une méthode statique de la classe Respect\Validation\Validator (généralement importée sous le nom v).

1. v::email()

Signature : public static function email(): Validator

Fonction : Vérifie si la valeur est une adresse email valide selon les RFC 5321/5322.

Exemple :

$validator = v::email();
var_dump($validator->validate('test@test.com')); // true
var_dump($validator->validate('pas-un-email')); // false

2. v::alnum()

Signature : public static function alnum(string $additionalChars = ''): Validator

Fonction : Vérifie si la chaîne contient uniquement des lettres (a-z, A-Z) et des chiffres (0-9). Vous pouvez passer des caractères supplémentaires autorisés.

Exemple :

$validator = v::alnum();
var_dump($validator->validate('abc123')); // true
var_dump($validator->validate('bonjour le monde')); // false (espace non autorisé)

// Avec caractères supplémentaires
$validatorWithDash = v::alnum('-');
var_dump($validatorWithDash->validate('mon-nom')); // true

Recommendations