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