Validation library for PHP 5.4+ / HHVM inspired by Joi from Hapi.
The recommended way to install the library is through Composer
composer require bartosz-maciaszek/validation
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('user@example.com', V::string()->email(), function($err, $output) {
// ...
});
Library also supports conversions:
V::validate('FooBar', V::string()->lowercase(), function($err, $output) {
// $output equals 'foobar'!
});
Wanna something more complex? Let's try to validate an array!
$input = [
'foo' => 'bar',
'baz' => [
'quux' => 'foo',
'baz' => 'test-123456',
'bar' => 123,
'foo' => 'test123test'
]
];
$schema = V::arr()->keys([
'foo' => V::string()->length(3),
'baz' => V::arr()->keys([
'quux' => V::string()->valid('foo', 'bar', 'baz')->uppercase(),
'baz' => V::string()->regex('/^test\-[0-9]+$/'),
'bar' => V::number()->min(100)->max(200),
'foo' => V::string()->replace('test', 123)
])
]);
V::validate($input, $schema, function($err, $output) {
var_dump($output);
});
Documentation can be found here (please note it's not 100% completed :)).
To run the unit test, simply install the dependencies and invoke make test
$ make deps
$ make test
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