27.3. Pisanie walidatorów
Poprzedni | Rozdział 27. Zend_Validate | Następny

## 27.3. Pisanie walidatorów

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

Poprzedni | Początek rozdziału | Następny
27.2. Łańcuchy walidatorów | Spis treści | 27.4. Walidacja adresów email