rossriley/validation

Data validation library. Validate arrays, array objects, domain models etc using a simple API. Easily add your own validators on top of the already dozens built-in validation rules. This fork maintains PHP 5.3 compatibility.

1.2.1 2014-06-23 18:21 UTC

This package is not auto-updated.

Last update: 2024-04-23 00:58:31 UTC


README

#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)