우아하고 사용하기 쉬운 JSON 유효성 검사기.
JSON 유효성 검사는 자동화 된 API 테스트에서 일반적인 작업이며 JSON-SCHEMA는 복잡하고 사용하기 쉽지 않으므로 JSON 유효성 검사 프로세스를 단순화하고 JSON 검증을보다 우아하고 재미있게 만들기 위해이 라이브러리를 만들었습니다.
다음 명령으로 최신 버전의 JSON Validator를 설치할 수 있습니다.
composer require rethink/json-validator:dev-master 기본적으로 JSON Validator는 7 가지 종류의 내장 유형을 배송했습니다.
내장 유형 외에 defineType() 메소드를 통해 사용자 정의 유형을 정의 할 수 있습니다.
다음 코드 스 니펫은 배열 또는 호출 가능을 통해 사용자 정의 유형을 정의하는 방법을 보여줍니다.
$ validator -> defineType ( ' User ' , [
' name ' => ' string ' ,
' gender ' => ' string ' ,
' age ' => ' ?integer ' ,
' rating ' => ' ?integer|boolean ' ,
]); 이 예제에는 4 개의 속성이있는 사용자 지정 유형의 명명 된 User 정의됩니다. 이름과 성별은 줄이 필요하고, 나이는 정수가 필요하지만 귀중한 사람이되며 정수 또는 부울에 필요한 등급은 무효가되도록 허용합니다.
$ validator -> defineType ( ' UserCollection ' , [ ' User ' ]); 이것은 UserCollection User 배열로 정의합니다. 목록 유형을 정의하기 위해 유형의 정의에는 하나의 요소 만 포함됩니다.
$ validator -> defineType ( ' timestamp ' , function ( $ value ) {
if ((! is_string ( $ value ) && ! is_numeric ( $ value )) || strtotime ( $ value ) === false ) {
return false ;
}
$ date = date_parse ( $ value );
return checkdate ( $ date [ ' month ' ], $ date [ ' day ' ], $ date [ ' year ' ]);
});호출 가능을 사용하여 유형을 정의 할 수도 있으며, 이는 데이터에 대한 일부 유효성 검사를 수행하는 데 유용합니다. 위의 예와 같은 예를 들어 데이터가 유효한 DateTime이어야하는 타임 스탬프 유형을 정의했습니다.
다음 두 단계만으로 유형을 검증 할 수 있습니다.
use rethink jsv Validator ;
$ validator = new Validator ();
// $validator->defineType(...) Add your custom type if necessary $ matched = $ validator -> matches ( $ data , ' User ' );
if ( $ matched ) {
// Validation passed
} else {
$ errors = $ validator -> getErrors ();
} 이 예제는 주어진 $data 유형 User 일치하는지 확인합니다. 유효성 검사가 실패하면 getErrors() 메소드를 통해 오류 메시지를 얻을 수 있습니다.
어떤 상황에서는 객체가 유형과 엄격하게 일치하기를 원할 수도 있습니다. strict mode 사용하여이를 달성 할 수 있습니다. 다음이 예입니다.
$ data = [
' name ' => ' Bob ' ,
' gender ' => ' Male ' ,
' age ' => 19 ,
' phone ' => null , // This property is unnecessary
];
$ matched = $ validator -> matches ( $ data , ' User ' , true ); // strict mode is turned on
var_dump ( $ matched ); // false is returned