Skip to content

Schemation is validator of various data structures.

License

Notifications You must be signed in to change notification settings

schematicon/validator-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Schematicon Validator (PHP)

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.

About

Schemation is validator of various data structures.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages