validation
validation copied to clipboard
Validation library for PHP inspired by Joi
About
Validation library for PHP 5.6+ / PHP 7 / HHVM inspired by Joi from Hapi.
Installation
The recommended way to install the library is through Composer
composer require bartosz-maciaszek/validation
Examples
Validation with the library is straightforward. You can validate primitives like this:
<?php
use Validation\Validation as V;
V::validate('foobar', V::string(), function($err, $output) {
if ($err) {
echo 'Validation failed: ' . $err;
exit;
}
echo $output; // 'foobar'
});
You can also chain other assertions:
V::validate('[email protected]', V::string()->email(), function($err, $output) {
// ...
});
The library also supports transformations:
V::validate('FooBar', V::string()->lowercase(), function($err, $output) {
// $output equals 'foobar'!
});
Wanna something more complex? Let's try to validate an array!
$input = [
'username' => 'foobar',
'password' => 'secret123',
'birthyear' => 1980,
'email' => '[email protected]',
'sex' => 'male'
];
$schema = V::arr()->keys([
'username' => V::string()->alphanum()->min(3)->max(30),
'password' => V::string()->regex('/[a-z-A-Z0-9]{3,30}/'),
'birthyear' => V::number()->integer()->min(1900)->max(2013),
'email' => V::string()->email(),
'sex' => V::string()->valid('male', 'female')
]);
V::validate($input, $schema, function ($err, $output) {
// $err === null -> valid!
});
Documentation can be found here (please note it's not 100% completed :)).
Tests
To run the unit test, simply install the dependencies and invoke make test
$ make deps
$ make test
Contributing
Contributions are welcome. If you want to help, please fork the repo and submit a pull request. To maintain the coding style, please make sure your code complies with PSR2 standard.
$ make cs