Qu'est-ce que Respect\\Validation?
Respect\\Validation est une bibliothèque de validation de données en PHP puissante et expressive. Elle permet de construire des règles de vérification complexes à l'aide de chaînes de méthodes, rendant le code propre et lisible. La bibliothèque prend en charge plus de 60 règles intégrées (de la vérification d'email à la validation CPF/CNPJ) et est facilement extensible avec des règles personnalisées.
Pourquoi la validation est-elle nécessaire?
La validation des données est une étape critique dans le traitement des entrées utilisateur, des requêtes API ou des données provenant de sources externes. Sans elle, l'application est vulnérable à :
- Injection SQL et attaques XSS
- Données incorrectes provoquant des erreurs
- Violation de la logique métier
Respect\\Validation résout ces problèmes en fournissant une interface unifiée pour le filtrage et la vérification.
Installation
Installez la bibliothèque via Composer :
composer require respect/validationAprès l'installation, incluez l'autoloader et utilisez l'espace de noms :
require 'vendor/autoload.php';use Respect\\Validation\\Validator as v;Fonctionnalités principales
La bibliothèque propose :
- Chaînes de règles :
v::alnum()->noWhitespace()->length(5, 20)->validate($input) - Messages d'erreur personnalisés :
v::email()->setName('Email')->assert($input) - Validation groupée :
v::attribute('name', v::stringType())->attribute('age', v::intVal()) - Champs facultatifs et règles conditionnelles (par exemple, vérification uniquement si le champ est présent).
Exemple de code PHP
Validation simple d'un formulaire d'inscription :
<?phprequire 'vendor/autoload.php';use Respect\\Validation\\Validator as v;
$data = [ 'username' => 'john_doe', 'email' => 'john@example.com', 'password' => 'secret123', 'age' => 25];
$usernameValidator = v::alnum()->noWhitespace()->length(4, 20);$emailValidator = v::email();$passwordValidator = v::length(8, 64);$ageValidator = v::intVal()->between(18, 120);
try { $usernameValidator->setName('Username')->assert($data['username']); $emailValidator->setName('Email')->assert($data['email']); $passwordValidator->setName('Password')->assert($data['password']); $ageValidator->setName('Age')->assert($data['age']); echo 'Toutes les données sont valides!';} catch (\\Respect\\Validation\\Exceptions\\NestedValidationException $e) { echo implode('<br>', $e->getMessages());}Résultat en cas d'erreur : "Username must contain only letters and digits" etc.
Quand l'utiliser
- Formulaires sur les sites web — inscription, contact, commande
- API REST — vérification des requêtes JSON avant traitement
- Import de données — validation CSV/Excel avant écriture en base de données
- Scripts en ligne de commande — vérification des arguments CLI
Respect\\Validation convient aux projets de toute taille — des sites simples aux frameworks (Laravel, Symfony). Elle remplace les constructions if-else lourdes et simplifie les tests.
Aussi dans la bibliothèque
Client Redis pour Node.js : ioredis — guide complet
Géolocalisation et cartes en PHP : aperçu des bibliothèques et outils
Files d'attente de tâches en Java : de ThreadPoolExecutor à Disruptor
sqlc pour Go : guide complet avec exemples concrets