schematicon/validator

Schemation Validator is powerful validator of various data structures.

v1.2.0 2019-03-20 09:59 UTC

README

Build Status Downloads this Month Stable version

Validator is Schematicon Schema validator. Schemeaticon schema is innovative declarative language for data structure description. It is programming-language independent; that means you can define the schema using NEON, YAML or native PHP arrays.

Example

my_family.neon:

type: map
properties:
    name: string
    surname: string
    sex:
        enum: [male, female]
    age: int|null # property may be a null
    ?height: float # property may not exist at all; if exist, it has to be a float
    siblings:
        type: array
        item:
            type: string

The following inputs may be validated againts the defined schema:

$normalizer = new Schematicon\Validator\Normalizer();
$schema = Neon\Neon::decode(file_get_contents('./my_family.neon'));
$schema = $normalizer->normalize($schema);
$validator = new Schematicon\Validator\Validator($schema);

$result = $validator->validate([
	'name' => 'jon',
	'surname' => 'snow',
	'sex' => 'male',
	'age' => 18,
	'height' => 180.00,
	'siblings' => ['Arya'],
]);

$result->isValid(); // true
$result->getErrors(); // []

Installation

Use composer:

$ composer require schematicon/validator

License

MIT. See full license.

The development was sponsored by Sygic Travel.