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.
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(); // []
Use composer:
$ composer require schematicon/validator
MIT. See full license.
The development was sponsored by Sygic Travel.