2014-10-08 6 views
1

멋진 Respect Validation library에는 string(), alpha() 등과 같은 내장 된 유효성 검사기가 많이 포함되어 있습니다. . 나는이 작업을 수행 할 수 있도록하려면, 예를 들어, 라이브러리에 자기 정의 유효성 검사기를 추가 할 : 난 그냥 그없는 매우 복잡한 그것의 발견Respect의 유효성 검사 라이브러리에 사용자 정의 검사기를 추가하는 방법

Validator::myCustomValidator()->assert($input); 

,하지만 난 라이브러리의 소스 코드를 볼 수밖에 없었습니다 알아 내기 위해, 나는이 자기 대답 질문을 미래의 참고를 위해 여기 올리고있다.

답변

2

검증 클래스와 적절한 네임 스페이스에 동반 예외 클래스를 정의하고 검증 라이브러리는 자동적으로 같은 데이터의 유효성을 검사하는 데 사용할 것

myCustomValidator.php :

<?php 

namespace Respect\Validation\Rules; 

class myCustomValidator extends AbstractRule 
{ 
    public function validate($input) 
    { 
     return true; // Implement actual check here; eg: return is_string($input); 
    } 
} 

myCustomValidatorException.php :

<?php 

namespace Respect\Validation\Exceptions; 

class myCustomValidatorException extends ValidationException 
{ 
    public static $defaultTemplates = array(
     self::MODE_DEFAULT => array(
      self::STANDARD => '{{name}} must ... ', // eg: must be string 
     ), 
     self::MODE_NEGATIVE => array(
      self::STANDARD => '{{name}} must not ... ', // eg: must not be string 
     ) 
    ); 
} 

프로젝트에 이러한 파일이 포함되어있는 한 Validator::myCustomValidator()->assert($input);이 작동해야합니다.

이것은 분명히 명명 규칙에 의존하므로 클래스 이름을 사용하여 자체 정의 유효성 검사기를 호출해야하며 설정해야합니다.

관련 문제