مدقق JSON الذي صمم ليكون أنيقة وسهلة الاستخدام.
يعد التحقق من صحة JSON مهمة شائعة في اختبار API الآلي ، JSON-SCHEMA معقدة وليس سهلة الاستخدام ، لذلك قمت بإنشاء هذه المكتبة لتبسيط عملية التحقق من صحة JSON وجعلت التحقق من صحة JSON أكثر أناقة وممتعة.
يمكنك تثبيت أحدث إصدار من JSON Validator مع الأمر التالي:
composer require rethink/json-validator:dev-master بشكل افتراضي ، تم شحن مصادقة JSON مع سبعة أنواع من الأنواع المدمجة:
إلى جانب الأنواع المدمجة ، من الممكن تحديد نوعك المخصص عبر طريقة defineType() .
تُظهر مقتطفات التعليمات البرمجية التالية كيف يمكننا تحديد الأنواع المخصصة من خلال Array أو Callable.
$ validator -> defineType ( ' User ' , [
' name ' => ' string ' ,
' gender ' => ' string ' ,
' age ' => ' ?integer ' ,
' rating ' => ' ?integer|boolean ' ,
]); يحدد هذا المثال 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 ' ]);
});من الممكن أيضًا تحديد نوع باستخدام قابلة للاستدعاء ، وهو أمر مفيد لإجراء بعض التحقق من الصحة على البيانات. على سبيل المثال ، حدد المثال أعلاه نوع الطابع الزمني ، وهذا يتطلب أن تكون البيانات موجودة في الوقت المناسب.
يمكننا التحقق من صحة نوع من الخطوتين التاليتين:
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