PHPValidator est une bibliothèque PHP moderne pour la validation des données dans vos applications PHP. Il fournit un moyen flexible et extensible de valider les données à l'aide de règles prédéfinies ou en créant des règles de validation personnalisées.
Utilisez le compositeur pour installer phpvalidator:
composer require blakvghost/php-validator use BlakvGhost PHPValidator Validator ;
use BlakvGhost PHPValidator ValidatorException ;
try {
$ data = [
' username ' => ' BlakvGhost ' ,
' email ' => ' [email protected] ' ,
' score ' => 42 ,
];
// or
// $data = $_POST;
$ validator = new Validator ( $ data , [
' username ' => ' required|string ' ,
' email ' => ' required|email ' ,
' score ' => [ ' required ' , ' max:200 ' , new CustomRule ()],
' password ' => new CustomRule (),
]);
if ( $ validator -> isValid ()) {
echo " Validation passed! " ;
} else {
$ errors = $ validator -> getErrors ();
print_r ( $ errors );
}
} catch ( ValidatorException $ e ) {
echo " Validation error: " . $ e -> getMessage ();
} Vous pouvez également personnaliser les messages d'erreur de validation ou specify the default language
$ data = [
' username ' => ' BlakvGhost ' ,
];
$ validator = new Validator (
$ data ,
[
' username ' => ' required|string ' ,
],
[
' username ' => [
' required ' => ' Votre nom d ' utilisateur doit être présent ' ,
' string ' => ' Votre nom d ' utilisateur doit forcément être une chaîne de caractère ' ,
],
]
);
// For the default language
$ validator = new Validator ( $ data , $ rules , lang: ' fr ' ); Predefined Rules : PHPValidator est livré avec un ensemble de règles de validation prédéfinies telles que requises, chaîne, e-mail, maxLength, etc.
Custom Rules : créez facilement des règles de validation personnalisées en implémentant l'interface Rule .
Multilingual Support : personnalisez les messages d'erreur de validation basés sur la langue de l'application à l'aide du LangManager .
PHPValidator fournit une variété de règles prédéfinies que vous pouvez utiliser pour la validation des données. Voici une liste de certaines règles couramment utilisées ainsi que des exemples de leur utilisation:
Règle requise
' username ' => ' required 'Règle de la corde
' username ' => ' string 'Règle par e-mail
' email ' => ' email 'Règle de longueur maximale
' username ' => ' max:25 'Règle confirmée
' password_confirmation ' => ' confirmed:password 'Règle de dossier
' file ' => ' file 'Règle acceptée
"yes" , "on" , "1" ou true . Utile pour les cases à cocher. ' terms_and_conditions ' => ' accepted 'Accepté si la règle
' terms_and_conditions ' => ' accepted_if:is_adult,true 'Règle activeurl
' website ' => ' active_url 'Règle alpha
' name ' => ' alpha 'Règle numérique
' age ' => ' numeric 'Règle en minuscules
' username ' => ' lowercase 'Règle majuscule
' username ' => ' uppercase 'En règle générale
' role ' => ' in:admin,editor,viewer 'Règle nullable
null ou vide. ' optional_field ' => ' nullable 'Règle de mot de passe
secure password . ' password ' => ' password 'Même règle
' password_confirmation ' => ' same:password 'Règle de longueur maximale
' username ' => ' min:8 'Pas en règle
' value ' => ' not_in:foo,bar 'Requis avec la règle
' firstname ' => ' required_with:lastname ' ,Règle IP valide
' client_ip ' => ' ip ' ,Règle JSON
' config ' => ' json ' ,Règle URL
' website ' => ' url ' ,Règle numérique alpha
' pseudo ' => ' alpha_num ' ,Règle booléenne
' is_admin ' => ' bool ' ,Règle de taille
[
' string ' => ' size:7 ' , // strlen(string) == 7
' integer ' => ' size:7 ' , // integer == 7
' array ' => ' size:7 ' , // count(array) == 7
' file ' => ' size:512 ' , // file size (kb) == 512
]Non requis avec la règle
' email ' => ' not_required_with:phone_number ' , En plus des règles prédéfinies, vous pouvez créer des règles de validation personnalisées en implémentant l'interface Rule . Voici un exemple de la façon de créer et d'utiliser une règle personnalisée:
// CustomPasswordRule.php
namespace YourNameSpace Rules ;
use BlakvGhost PHPValidator Contracts Rule ;
class CustomPasswordRule implements Rule
{
protected $ field ;
public function __construct ( protected array $ parameters = [])
{
}
public function passes ( string $ field , $ value , array $ data ): bool
{
$ this -> field = $ field ;
// Implement your custom validation logic here
// Example: Check if the password is equal to confirm_password
return $ value === $ data [ ' confirm_password ' ];
}
public function message (): string
{
return " Vos deux mot de passes ne sont pas identiques " ;
}
}Utilisez votre classe personnalisée directement
use BlakvGhost PHPValidator Validator ;
use BlakvGhost PHPValidator ValidatorException ;
use YourNameSpace CustomPasswordRule ;
// ...
try {
$ data = [
' password ' => ' 42 ' ,
' confirm_password ' => ' 142 ' ,
];
// or
// $data = $_POST;
$ validator = new Validator ( $ data , [
' password ' => [ ' required ' , new CustomPasswordRule ()],
]);
if ( $ validator -> isValid ()) {
echo " Validation passed! " ;
} else {
$ errors = $ validator -> getErrors ();
print_r ( $ errors );
}
} catch ( ValidatorException $ e ) {
echo " Validation error: " . $ e -> getMessage ();
}Ajoutez votre classe personnalisée à la liste des règles et utilisez-la comme si elle était native
use BlakvGhost PHPValidator Validator ;
use BlakvGhost PHPValidator ValidatorException ;
use BlakvGhost PHPValidator Mapping RulesMaped ;
use YourNameSpace CustomPasswordRule ;
// Add your rule here using an alias and the full namespace of your custom class
RulesMaped:: addRule ( ' c_password ' , CustomPasswordRule::class);
try {
$ data = [
' password ' => ' 42 ' ,
' confirm_password ' => ' 142 ' ,
];
$ validator = new Validator ( $ data , [
' password ' => ' required|c_password ' ,
]);
if ( $ validator -> isValid ()) {
echo " Validation passed! " ;
} else {
$ errors = $ validator -> getErrors ();
print_r ( $ errors );
}
} catch ( ValidatorException $ e ) {
echo " Validation error: " . $ e -> getMessage ();
}Dans cet exemple, nous avons créé un CustomPasswordrule qui vérifie si le mot de passe est égal à confirm_password. Vous pouvez personnaliser la méthode Pass pour implémenter votre logique de validation spécifique.
Si vous souhaitez contribuer à PHPValidator, veuillez suivre nos directives de contribution.
Pour un soutien, vous pouvez me contacter par e-mail à [email protected]. N'hésitez pas à me contacter si vous avez des questions ou si vous avez besoin d'aide pour PHPValidator.
PHPValidator est un logiciel open source sous licence MIT.