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