Zend_Validate fournit un ensemble de validateurs usuels. Inévitablement, les développeurs ont besoin
de pouvoir écrire leurs propres validateurs pour des besoins spécifiques. La tâche consistant à
écrire des validateurs personnalisés est facilitée en implémentant Zend_Validate_Interface
.
Zend_Validate_Interface
définit deux méthodes, isValid()
et
getMessages()
, qui peuvent être implémentées par les classes créées.
Un objet qui implémente cette interface peut être utilisé comme chaîne de validation via
Zend_Validate::addValidator()
.
L'exemple ci-dessous décrit comment écrire un validateur personnalisé :
<?php require_once 'Zend/Validate/Interface.php'; class MonValidateur implements Zend_Validate_Interface { protected $_messages = array(); public function isValid($valeur) { $this->_messages = array(); // définition de $requirement sur la base des critères de validation if (!$requirement) { $this->_messages[] = "Raison de l'échec"; return false; } return true; } public function getMessages() { return $this->_messages; } } ?>
Pour ajouter une instance de la classe précédente à une chaîne de validation :
<?php $validateurChaine = new Zend_Validate(); $validateurChaine->addValidator(new MonValidateur()); ?>