首頁 >後端開發 >php教程 >php擴展ZF——Validate擴展

php擴展ZF——Validate擴展

WBOY
WBOY原創
2016-07-29 08:37:27964瀏覽

之前寫了一則文章關於如何在ZF0.6版本下擴充ZF的。這篇應該說是類似的文章,但環境換成ZF1.0RC1版本了。
     在開始ZF擴充前,建議先看看ZF手冊中的一些指令規範(ZF建議使用),同時希望讀者對ZF有較好的理解。如果沒有,可以先上PHPCHIAN的ZF版詳細了解,或是到phpeye找相關資料。
      ZF的validator提供了強大的驗證功能,但在實際的操作上還是過於煩瑣。例如驗證郵件,是用ZF的程式碼如下
require_once 'Zend/Validate/EmailAddress.php'; 
$validator = new Zend_Validate_EmailAddress(); >isValid($email)) { 
    // email appears to be valid 
} else {   foreach ($validator->getMessages() as $ message) { 
        echo "$messagen"; 
    } 

?>   } 

?> 只不過ZF幫我們把郵件驗證的細節封裝好了。那我們要如何簡化成這樣效果呢? (以下是我擴充後的呼叫方式)
$validate = new Phpbean_Validate(); 
       validate -> add('email ',new Zend_Validate_EmailAddress(),'郵件地址不正確! '); 
       $validate -> add('username',new Zend_Validate_StringLength(3,15)('username',new Zend_Validate_。 %value%'不符合條件'); 
        $validate -> add('password',new Zend_Validate_StringLength(6,20),'密碼長度必須在6到20點之間!』); -> add('password',new Phpbean_Validate_isEqual($_POST['repassword']),'兩次輸入密碼不符'); 
        $validate -> add( 'yanxue8_authcode',new Phpbean_Validate_isEqual($authcode->authcode($_POST['yanxue8_authcode_mdcode'],'DECODE')),'驗證碼不符!'); ) ){ 
            error_page('註冊失敗',$validate->getMessageText()); 
  另一方面也有利同意的出錯處理。那麼如何做到這樣呢?
    關鍵是Phpbean_Validate這個類別。
    其實實作起來很簡單,Phpbean_Validate::add()方法是把一條條的驗證規則加入進來。然後呼叫Phpbean_Validate::validator()來驗證就OK了。
    具體實現步驟如下:
    首先,在zend的同級目錄中增加一個phpbean資料夾,然後在裡面增加一個Validator.php檔案。
    然後,在validator.php檔案加入Phpbean_Validate這個類別的定義。注意(你可以修改成自己的檔案名稱和路徑名,但注意一定要和類別的名稱保持一致)。
    這裡,我給出我的Phpbean_Validate類別的實作過程,僅供參考。
 
類別Phpbean_Validate{ 
    受保護的$_fileds =array(); 
     ; 
    公用函數 set_breakOnFailure($value){ 
        $this->_breakOnFailure = $value;          if ( empty($breakOnFailure) ) $breakOnFailure = $this->_breakOnFailure;  
        $    return $this; 
    } 
    公用驗證器($array = array()){ 
         (is_array($this->_fileds)) { 
            foreach ($this->_fileds as $filed){ 
      ; 
               if(empty($key)){ 
                    if(!$validate){ 
      = $message; 
                      if($breakOnFailure)  🎜>                   繼續使用; 
           >                if(!empty($message)) $validate->setMessage( $message);  $key]) ){ 
                    $this->_message[ $key][] = $validate->getMessages() ; 
                      } 
            } 
            
            返回true; 
        } 
    age(){ 
         return $this->_message; 
    } 
    公用函式){ 
        $str = ''; 
        foreach ($this->_message  for$ms){  $m) $str .= $m[0]."n" ; 
        } 
        return $str; 
    } > 
   另外你還可以直接擴充一些驗證規則類別。下一篇我再詳細說。 

以上就介紹了 php擴展ZF——Validate擴展,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn