第 29 章 Zend_Validate
上一页 |  | 下一页

## 第 29 章 Zend_Validate

## 29.1. 简介

Zend_Validate 组件提供一组通用的校验器。它也提供了一个简单的校验器链机制，即在用户定义的顺序下，多个校验器可以被用于单个的数据。

什么是校验器（validator）?

校验器根据要求检查它的输入并产生一个布尔结果--是否输入被成功校验。如果输入不符合要求，校验器另外地提供信息来说明输入不符合要求。

例如，一个 web 应用可能要求一个用户名的长度在6 到12个字符并只包含数字和文字。一个校验器可以被用来确保用户名符合要求。如果一个用户名不符合一个或者全部两个要求，知道它到底不符合哪个要求将非常有用。

用这种方法定义校验为`Zend_Validate_Interface`提供了基础，它定义了两个方法，`isValid()` 和 `getMessages()`。`isValid()`方法根据提供的值来校验，当且仅当这个值通过校验条件，它返回`true`。如果`isValid()`返回`false`，`getMessages()` 返回一个信息数组来解释校验失败的原因。

| 注意
`getMessages()` 只为最近的`isValid()`调用返回校验失败信息，因为 `isValid()` 清楚先前 `isValid` 调用的任何信息。

下面的例子示例一个e-mail地址的校验：

    <?php
    require_once 'Zend/Validate/EmailAddress.php';
    $validator = new Zend_Validate_EmailAddress();
    if ($validator->isValid($email)) {
        // email appears to be valid
    } else {
        // email is invalid; print the reasons
        foreach ($validator->getMessages() as $message) {
            echo "$message\n";
        }
    }

上一页 |  | 下一页
28.4. 视图助手（View Helper） | 起始页 | 29.2. 校验器链