以前、ZF0.6バージョンでZFを拡張する方法について記事を書きました。こちらも同様の記事と言うべきですが、環境をZF1.0RC1版に変更しています。
ZF 拡張機能を開始する前に、ZF マニュアル (ZF が推奨) のコマンド仕様を読むことをお勧めします。読者が ZF についてよりよく理解できることを願っています。そうでない場合は、まず PHPCHIAN の ZF バージョンにアクセスして詳細を確認するか、phpeye にアクセスして関連情報を見つけることができます。
ZF のバリデーターは強力な検証機能を提供しますが、実際の操作ではまだ煩雑です。たとえば、電子メールを検証するための ZF のコードは次のとおりです。 $email)) {
// 電子メールは有効であるようです
} else {
// 電子メールは無効です;
foreach ($ validator->getMessages() as $message) {
echo "$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),'ユーザー名の長さは'%value%' は条件を満たしていません');
$validate -> add('password',new Phpbean_Validate_isEqual($_POST['repassword']),'入力されたパスワードが一致しません');
$authcode = new Phpbean_Img_Code();
$validate -> add('yanxue8_authcode',new Phpbean_Validate_isEqual($_POST['yanxue8_authcode_mdcode']) ,'DECODE')),'認証コードが一致しません!');
if( !$validate -> validator($_POST) ){
error_page('登録に失敗しました',$validate-> 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();
保護された $_breakOnFailure = true;
public function set_breakOnFailure($value){
$this->_breakOnFailure = $value;
}
public function add($key,$validate,$message='',$breakOnFailure=''){
if( empty($breakOnFailure) ) $breakOnFailure = $this- >_breakOnFailure;
$this->_filds[] = array($key,$validate,$message,$breakOnFailure);
$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) = $filed;
if(empty($key)){
if(!$validate){
$this->_message[][] = $message ;
if($breakOnFailure) break;
}
続けます。
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;
}
}
?>
また、これらのテストの種類を直接展開することもできます。次の記事で詳しくお話します。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版
中国語版、とても使いやすい

ホットトピック



