Zend_Validate には、よく使うバリデータ群が付属しています。しかし、
特定の目的のために使用する独自のバリデータを書くことは避けられないでしょう。
独自のバリデータを作成するには、
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();
// $requirement にもとづく検証を行います
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()); ?>