A JSON Schema validator written in PHP
PHP Shell
Latest commit 1c26dd2 Sep 25, 2016 @stefk committed on GitHub Merge pull request #18 from stefk/unresolved-ref-fix
Avoid spl_object_hash for recursion checks

README.md

JVal

A JSON Schema validator written in PHP.

Features:

  • Full draft 4 support (passes the whole official test suite, except for the two tests that require big nums to be treated as integers, which is not feasible in PHP)
  • Distinct steps for references resolution, syntax parsing and data validation.

Build Status Code Coverage Scrutinizer Code Quality

Installation

composer require stefk/jval dev-master

Basic usage

$validator = JVal\Validator::buildDefault();
$violations = $validator->validate($data, $schema);

Data can be anything that might result from a call to json_decode. The schema must be the JSON-decoded representation of a JSON Schema, i.e. a stdClass instance.

If the schema contains relative references to external schemas (either remote or local), the absolute URI of the base schema will probably be needed as well:

$validator = JVal\Validator::buildDefault();
$violations = $validator->validate($data, $schema, 'file://path/to/the/schema');

CLI

bin/jval path/to/data path/to/schema