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()); ?>