ホームページ >バックエンド開発 >PHPチュートリアル >php 拡張子 ZF - 拡張子の検証
以前、ZF0.6バージョンでZFを拡張する方法について記事を書きました。こちらも同様の記事と言うべきですが、環境をZF1.0RC1版に変更しています。
ZF 拡張機能を開始する前に、ZF マニュアル (ZF が推奨する) のコマンド仕様を読むことをお勧めします。読者が ZF についてよりよく理解できることを願っています。そうでない場合は、まず PHPCHIAN の ZF バージョンにアクセスして詳細を確認するか、phpeye にアクセスして関連情報を見つけることができます。
ZF のバリデーターは強力な検証機能を提供しますが、実際の運用ではまだ煩雑です。たとえば、電子メールを検証するための ZF のコードは次のとおりです
require_once 'Zend/Validate/EmailAddress.php'
$validator = new Zend_Validate_EmailAddress(); ) ) {
// メールは有効のようです
} else 「$messagen」;
}
}
?>
ZF を使用しない検証方法と非常によく似ていることがわかりましたか。 ZF が電子メール検証の詳細をカプセル化するのに協力してくれたというだけです。では、この目的をどのように単純化すればよいでしょうか? (以下は私の拡張呼び出しメソッドです)
$validate = new Phpbean_Validate();
$validate -> set_breakOnFailure(false); add('email',new Zend_Validate_EmailAddress() ), 'メール アドレスが間違っています! ');
$validate -> add('username',new Zend_Validate_StringLength(3,15),'ユーザー名の長さは 3 ~ 15 である必要があります! '%value%'条件を満たしていません');
$validate -> add('password',new Zend_Validate_StringLength(6,20), 'パスワードの長さは 6 から 20 まででなければなりません!') new Phpbean_Validate_isEqual('repassword' ]),'入力された 2 つのパスワードが一致しません')
Equal($authcode-> ;authcode($_POST['yanxue8_authcode_mdcode'],'DECODE')),'検証コードが一致しません!'); $ 検証-& gt; getMessageText ());
}
? 上記のメソッドを使用すると、一方ではエラーが発生する可能性もあります。では、どうやってこれを行うのでしょうか?
キーは Phpbean_Validate クラスです。
実際、Phpbean_Validate::add() メソッドは検証ルールを 1 つずつ追加するのが非常に簡単です。次に、Phpbean_Validate::validator() を呼び出して検証すれば問題ありません。
具体的な実装手順は次のとおりです:
まず、zend の同じレベルのディレクトリに phpbean フォルダーを追加し、その中に Validator.php ファイルを追加します。
次に、Phpbean_Validate クラスの定義を validator.php ファイルに追加します。注 (独自のファイル名とパス名に変更できますが、クラス名との一貫性を保つようにしてください)。
ここでは、参考のためにのみ、Phpbean_Validate クラスの実装プロセスを示します。
class Phpbean_Validate{
protected $_fileds =array();
protected $_message = array();
protected $_breakOnFailure = true;
public function set_breakOnFailure($value){
$this->_breakOnFailure = $value;
}
public function add($key,$validate,$message='',$break
if( empty($breakOnFailure) ) $breakOnFailure = $this->_breakOnFailure;
$this->_fileds[] = array($key,$validate,$message,$breakOnFailure);
return $this;
}
public function validator($array = array()){
if(empty($array)) $array = $_POST; if(is_array($ this-> _fileds)){
foreach($ this-> _fileds as $ filed){
list($ key、$ validate、$ message、$ breakonfailure)= $ $; empty($key)){
if(!$validate){
$this->_message[][] = $message;
if( $breakOnFailure) break;
Continue;
if(!empty ($message)) $validate->setMessage($message);
if( !$validate->isValid($array[$key]) ){
$this->message[$key][] = $validate->getMessages();
if($breakOnFailure) break;
}
}
if(!empty($this->_message))return false;
true を返します。
}
trueを返します。
}
public function getMessage(){
return $this->_message;
}
public function getMessageText(){
$str = '';
foreach ($this->_message as $ms){
foreach ($ms as $m) $str .= $m[0]."n";
}
return $str;
}
}
?>
さらに、これらのテストの種類を直接展開することもできます。
上記は、PHP 拡張機能 ZF-Validate 拡張機能を内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。