cocoon-projet / control
Librairie de validation pour php
0.0.2
2025-04-09 05:49 UTC
Requires
- php: ^8.0
Requires (Dev)
This package is auto-updated.
Last update: 2025-04-09 05:52:15 UTC
README
Cocoon Control
Une librairie PHP 8 de validation de données simple et puissante.
Prérequis
- PHP 8.0 ou supérieur
- Composer
Installation
composer require cocoon-projet/control
Utilisation
Validation de base
use Cocoon\Control\Validator; $validator = new Validator(); $validator->validate([ 'name' => 'required', 'email' => 'required|email', 'age' => 'required|int|num_min:18', 'password' => 'required|same:password_confirm', 'password_confirm' => 'required' ]);
Validation avec données personnalisées
$validator->data([ 'name' => 'John Doe', 'email' => 'john@example.com', 'age' => '25', 'password' => '123456', 'password_confirm' => '123456' ])->validate([ 'name' => 'required', 'email' => 'required|email', 'age' => 'required|int|num_min:18', 'password' => 'required|same:password_confirm', 'password_confirm' => 'required' ]);
Messages d'erreur personnalisés
$validator->validate([ 'name' => 'required', 'email' => 'required|email' ], [ 'name.required' => 'Le nom est obligatoire', 'email.email' => 'L\'adresse email n\'est pas valide' ]);
Alias de champs
$validator->validate([ 'user_name as nom d\'utilisateur' => 'required', 'user_email as email' => 'required|email' ]);
Règles personnalisées
$validator->addRule('custom', function($value) { return $value === 'valid'; }, 'La valeur doit être "valid"'); $validator->validate([ 'field' => 'required|custom' ]);
Gestion des erreurs
try { $validator->validate([ 'name' => 'required', 'email' => 'required|email' ]); } catch (\Cocoon\Control\Exceptions\ValidationException $e) { $errors = $e->getErrors(); // Traitement des erreurs }
Règles disponibles
required
: Le champ est obligatoireemail
: Le champ doit être une adresse email valideint
: Le champ doit être un nombre entiernum_min:value
: Le champ doit être supérieur ou égal à la valeur spécifiéenum_max:value
: Le champ doit être inférieur ou égal à la valeur spécifiéesame:field
: Le champ doit correspondre au champ spécifiéalpha
: Le champ ne doit contenir que des lettresal_num
: Le champ ne doit contenir que des lettres et des chiffresbool
: Le champ doit être un booléendate
: Le champ doit être une date valideip
: Le champ doit être une adresse IP valide
Gestion des fichiers
La librairie supporte également la validation des fichiers uploadés :
$validator->validate([ 'avatar' => 'required_file|type:jpg,gif|size:100000' ]);
Tests
Pour exécuter les tests :
composer test
Pour générer un rapport de couverture de code :
composer test-coverage
Contribution
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche pour votre fonctionnalité (
git checkout -b feature/amazing-feature
) - Commit vos changements (
git commit -m 'Add some amazing feature'
) - Push vers la branche (
git push origin feature/amazing-feature
) - Ouvrir une Pull Request
Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.