>백엔드 개발 >PHP 튜토리얼 >php 확장 ZF - 확장 유효성 검사

php 확장 ZF - 확장 유효성 검사

WBOY
WBOY원래의
2016-07-29 08:37:27960검색

이전에 ZF0.6 버전에서 ZF를 확장하는 방법에 대한 기사를 쓴 적이 있습니다. 비슷한 글이라고 해야되나 ZF1.0RC1 버전으로 환경이 변경되었습니다.
ZF 확장을 시작하기 전에 ZF 매뉴얼(ZF 권장)에서 일부 명령 사양을 읽어 보는 것이 좋으며 독자가 ZF에 대해 더 잘 이해할 수 있기를 바랍니다. 그렇지 않은 경우 먼저 PHPCHIAN의 ZF 버전으로 이동하여 자세히 알아보거나 phpeye로 이동하여 관련 정보를 찾을 수 있습니다.
ZF의 검증인은 강력한 검증 기능을 제공하지만 실제 운영에서는 여전히 너무 번거롭습니다. 예를 들어 이메일을 확인하기 위해 ZF의 코드는 다음과 같습니다.
require_once 'Zend/Validate/EmailAddress.php' ->isValid($email)) {
// email이 나타납니다. 유효하려면
} else {
// 이메일이 유효하지 않습니다.
foreach ($validator->getMessages( ) as $message) {
echo "$messagen"; > }
}
?>
ZF를 사용하지 않는 검증 방법과 여전히 매우 유사하다는 것을 발견하셨나요? 단지 ZF가 이메일 확인의 세부 사항을 요약하는 데 도움을 준 것뿐입니다. 그렇다면 이 효과를 위해 어떻게 단순화할 수 있을까요? (다음은 확장 호출 방법입니다)
$validate = new Phpbean_Validate()
$validate -> set_breakOnFailure(false)
$validate -> 'email',new Zend_Validate_EmailAddress(),'이메일 주소가 잘못되었습니다!'); 사이에 '%value%'이(가) 조건을 충족하지 않습니다.')
$validate -> add('password',new Phpbean_Validate_isEqual ($_POST['repassword']),'두 개의 입력 비밀번호가 일치하지 않습니다.')
$authcode = new Phpbean_Img_Code()
$validate -> add('yanxue8_authcode',new Phpbean_Validate_isEqual($authcode ->authcode($_POST['yanxue8_authcode_mdcode'],'DECODE')),'인증 코드가 일치하지 않습니다!')
if( ! $validate -> validator($_POST) ){
error_page('Registration failed',$validate->getMessageText());
} }
?> 위의 방법을 사용하세요. 한편으로는 코드가 명확합니다. , 이는 또한 일관된 오류 처리를 용이하게 합니다. 그럼 어떻게 해야 할까요?
핵심은 Phpbean_Validate 클래스입니다.
실제로 Phpbean_Validate::add() 메소드를 사용하면 검증 규칙을 하나씩 추가하는 것이 매우 간단합니다. 그런 다음 Phpbean_Validate::validator()를 호출하여 확인하면 괜찮습니다.
구체적인 구현 단계는 다음과 같습니다.
먼저 zend와 동일한 디렉터리에 phpbean 폴더를 추가한 후, 그 안에 Validator.php 파일을 추가합니다.
그런 다음 Phpbean_Validate 클래스 정의를 validator.php 파일에 추가합니다. 참고(자신의 파일 이름과 경로 이름으로 변경할 수 있지만 클래스 이름과 일관성을 유지해야 합니다).
여기에서는 참고용으로만 Phpbean_Validate 클래스의 구현 프로세스를 제공합니다.
클래스 Phpbean_Validate{ 
    보호됨 $_fileds =array(); 
    보호된 $_message = array(); 
    보호됨 $_breakOnFailure = true; 
    공용 함수 set_breakOnFailure($value){ 
        $this->_breakOnFailure = $value; 
    } 
    공용 함수 add($key,$validate,$message='',$break
        if( empty($breakOnFailure) ) $breakOnFailure = $this->_breakOnFailure;  
        $ this->_fileds[] = array($key,$validate,$message,$breakOnFailure); 
        return $this; 
    } 
    공용 함수 검사기($array = array()){ 
        if(empty($array)) $array = $_POST; 
        if (is_array($this->_fileds)) { 
          foreach($this->_fileds as $filed){ 
               list($key,$validate,$message,$breakOnFailure) = $filed;                    $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를 반환합니다. 
    } 
    공용 함수 getMessage(){ 
        return $this->_message; 
    } 
    공용 함수 getMessageText(){ 
        $str = ''; 
        foreach ($this->_message as $ms){ 
            foreach ($ms as $m) $str .= $m[0]."n"; 
        } 
        반환 $str; 
    } 

?> 
   另外你还可以直接扩展一些验证规则类。下篇我再详细说。​

위 내용은 PHP 확장 ZF-Validate 확장에 대한 내용을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.