Présentation
Les validateurs dans Copix (3.0.3+) sont un moyen de définir des contrôles à appliquer sur des valeurs / objets / tableaux. Par exemple, un validateur de type "email" permet de valider qu'une chaine de caractère représente bien un email valide.
Il existe des validateurs fournis en standard avec Copix, et vous pouvez créer vos propres validateurs (en implémentant ICopixValidator).
Méthodes d'appel
Pour créer un validateur, il vous faut appeller la méthode static create ($pName, $pParams = array (), $pMessage = null) de CopixValidatorFactory?. Cet appel est raccourci par le biais de la fonction _validator -) . Les paramètres à passer sont les suivants :
- $pName : nom du validateur à appeler.
- $pParams (facultatif) : paramètres à passer au validateur appelé.
- $pMessage (facultatif) : Message à renvoyer en cas d'erreurs.
Exemples
<?php if (CopixValidatorFactory::create ('email')->check ('monadressemail@copix.org') !== true){ //Cette adresse email n'est pas valide. On a reçu un objet de type CopixErrorObject } //Ou en utilisant le raccourci if (_validator ('email')->check ('monadressemail@copix.org') !== true){ //Cette adresse email n'est pas valide. On a reçu un objet de type CopixErrorObject }
Méthodes disponibles
Les validateurs proposent deux méthodes :
- check - qui retourne true si ok, un CopixErrorObject sinon. IMPORTANT : Comparez bien le retour de check avec un triple égal (===) afin de vous assurez que c'est bien le booléen "true" qui vous est retourné, et non une valeur "équivalente à vrai".
- assert - qui lance une exception de type CopixValidatorException en cas d'échec de vérification
Les 3 types de validateurs
Il existe trois types de "validateur", à savoir :
- Les validateurs simples (qui implémentent ICopixValidator) qui héritent généralement de CopixAbstractValidator)
- Les validateurs composites (qui implémentent ICopixCompositeValidator?)
- Les validateurs complexes (qui implémentent ICopixComplexTypeValidator?)
Développez vos propres validateurs
Vous pouvez développer vos propres validateurs, dans vos modules, simplement en les plaçant dans le répertoires "classes" de vos modules et en leur faisant implémenter ICopixValidator.
Note : L'un des moyens les plus simple pour faire un filtre reste d'hériter de CopixAbstractValidator.
exemple avec nom_module/classes/is_hello.class.php
<?php class Is_Hello extends CopixAbstractValidator { protected function _validate ($pValue){ if ($pValue == "hello"){ return true; }else{ return "Ce message n'est pas très poli !";//sera le message d'erreur pour signifier l'échec de vérification } } } if (_validator ('mon_module|is_hello')->check ('je dis pas bonjour') !== true){ //ce sera le cas } //ou alors //lancera une exception de type CopixValidatorException avec comme message d'erreur // "Ce message n'est pas très poli !". _validator ('mon_module|is_hello')->assert ('je dis pas bonjour');
Liste des validateurs livrés en standard
Bien sûr, cette liste est amené à évoluer dans les futures versions de Copix
- CopixValidatorArray
- CopixValidatorInArray
- CopixValidatorBetween
- CopixValidatorCallback
- CopixValidatorDate
- CopixValidatorEmail
- CopixValidatorGT
- CopixValidatorInArray
- CopixValidatorLT
- CopixValidatorNotEmpty
- CopixValidatorNumeric
- CopixValidatorNumsecu
- CopixValidatorObject
- CopixValidatorPhone?
- CopixValidatorPreg
- CopixValidatorString
