29.3. 写校验器
上一页 | 第 29 章 Zend_Validate | 下一页

## 29.3. 写校验器

尽管提供了一组通用的校验器，但不可避免地，开发者还将为他们特定的需求来写定制的校验器。通过实现`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();

            // arrive on $requirement based on validation criteria

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

上一页 | 上一级 | 下一页
29.2. 校验器链 | 起始页 | 29.4. 校验 Email 地址