あなたの質問は非常にひどく聞かれます。したがって、その論理を掘り下げることはしません。申し訳ありませんが、カスタム検証クラスを作成する方法の非常に簡単な例を次に示します。
覚えておく必要がある最も重要なことは、2 つの方法です。
isValid()
: ロジックを介して true または false を返します
getMessages()
: 無効な場合はエラー メッセージを返します。
ユーザーが管理者かどうかを比較する基本的な例を次に示します。
class CustomValidate_UserAdmin extends Zend_Validate_Abstract
{
$admin = "username"; //I am using a static value this time
protected $_messageTemplates = array(
self::FLOAT => "'%value%' is not an admin"
);
public function isValid($value)
{
$this->_setValue($value);
if($this -> admin == $value) {
return true;
}
}
}
今すぐ使う
$element->addValidator(new CustomValidate_UserAdmin('username'));
これは、理解するための非常に単純な例です。あなたはそれをあなたのロジックに簡単に置き換えることができると思います。
アップデート
このように検証を追加します...
$element->addValidator(new CustomValidate_Hash('file/location', $hashvaluettocompare));
検証クラスで
function isValid($location, $value) {
if(hash_file("md5", $location)==$value) return true;
}