Zend_Validate zapewnia zestaw najczęściej potrzebnych walidatorów, ale
programiści często potrzebują napisać własne walidatory dla ich
szczególnych zastosowań. Zadanie pisania własnego filtru jest ułatwione
przez implementację interfejsu Zend_Validate_Interface.
Interfejs Zend_Validate_Interface definiuje dwie metody,
isValid() oraz getMessages(), które mogą
być zaimplementowane przez klasę użytkownika. Obiekt, który implementuje
ten interfejs może być dodany do łańcucha walidatorów za pomocą metody
Zend_Validate::addValidator().
Poniższy przykład demonstruje w jaki sposób może być napisany własny walidator:
<?php
require_once 'Zend/Validate/Interface.php';
class MyValidator implements Zend_Validate_Interface
{
protected $_messages = array();
public function isValid($value)
{
$this->_messages = array();
// ustalamy wartość zmiennej $requirement opartej na kryteriach walidacji
if (!$requirement) {
$this->_messages[] = "Reason validation failed";
return false;
}
return true;
}
public function getMessages()
{
return $this->_messages;
}
}
?>
Aby dodać instancję powyższego walidatora do łańcucha walidatorów:
<?php $validatorChain = new Zend_Validate(); $validatorChain->addValidator(new MyValidator()); ?>