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