Skip to content

rossriley/validation

 
 

Repository files navigation

#Sirius Validation

Build Status Coverage Status Scrutinizer Code Quality Latest Stable Version License

Sirius Validation is a library for data validation. It offers:

  1. validator object to validate arrays, ArrayObjects or objects that have a toArray method. It can be extended easily to validate other types.
  2. value validator object to validate single values
  3. validation helper to simplify single value validation (does not generate error messages, only returns TRUE/FALSE)
  4. build-in validation rules to perform the actual data validation. The validation rules are used by the helper and validator objects.

Out-of-the-box, the library can handle arrays, ArrayObjects and objects that have implemented the toArray method. In order to validate other data containers you must create a DataWrapper so that the validator be able to extract data from your object.

##Elevator pitch

$validation = new \Sirius\Validation\Validator;

// add a validation rule
$validator->add('title', 'required');

// add a rule that has a list of options
$validator->add('title', 'maxlength', array('max' => 100));
// or use JSON
$validator->add('title', 'maxlength', '{"max": 100}');
// or a URL query string
$validator->add('title', 'maxlength', 'max=100');

// add a rule with a custom error message
$validator->add('title', 'maxlength', 'max=100', 'Article title must have less than {max} characters');

// add a rule with a custom message and a label (very handy with forms)
$validator->add('title', 'maxlength', 'max=100', '{label} must have less than {max} characters', 'Title');

// add all of rule's configuration in a string (you'll see later why it's handy')
$validator->add('title', 'maxlength(max=255)({label} must have less than {max} characters)(Title)');

// add multiple rules at once (separate using [space][pipe][space])
$validator->add('title', 'required | maxlength(max=255) | minlength(min=10)');

// add all your rules at once
$validator->add(array(
    'title' => 'required | maxlength(max=10)({label} must have less than {max} characters)(Title)',
	'content' => 'required',
	'source' => 'website'
));

// add nested rules
$validator->add('recipients[*]', 'email'); //all recipients must be valid email addresses
$validator->add('shipping_address[city]', 'MyApp\Validator\City'); // uses a custom validator to validate the shipping city

##Documentation

go to the documentation

Release notes

1.1

  • Added HHVM to Travis CI
  • Renamed Validator* classes into Rule* classes (breaking change if you used custom rule classes)
  • Renamed ValidatorFactory to RuleFactory (breaking change)

About

Framework agnostic validation library for PHP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%