27.3. написание валидаторов
Пред. | Глава 27. Zend_Validate | След.

## 27.3. написание валидаторов

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

Пред. | Уровень выше | След.
27.2. Цепочки валидаторов | Начало | 27.4. Validating Email Addresses