Zend_Validate предоставляет набор наиболее часто используемых валидаторов, но разработчики часто сталкиваются с такими ситуациями, когда требуется написание своих валидаторов. Написание своих валидаторов облегчается реализацией интерфейса Zend_Validate_Interface
.
Zend_Validate_Interface
определяет два метода: isValid()
и getMessages()
, которые могут быть реализованы своими классами. Объект, реализующий данный интерфейс, может быть добавлен в цепочку валидаторов через метод Zend_Validate::addValidator()
.
Следующий пример демонстрирует, как можно писать свои валидаторы:
<?php require_once 'Zend/Validate/Interface.php'; class MyValidator implements Zend_Validate_Interface { protected $_messages = array(); public function isValid($value) { $this->_messages = array(); // нахождение результата проверки $requirement if (!$requirement) { $this->_messages[] = "Reason validation failed"; return false; } return true; } public function getMessages() { return $this->_messages; } } ?>
Добавление экземпляра только что написанного класса валидатора в цепочку валидаторов:
<?php $validatorChain = new Zend_Validate(); $validatorChain->addValidator(new MyValidator()); ?>