This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Validator
2012-07-11 18:23:09 +02:00
..
Constraints [Validator] Improved error messages displayed when the Valid constraint is misused 2012-07-11 18:23:09 +02:00
Exception fixed CS 2011-06-08 12:16:48 +02:00
Mapping fixed CS 2012-07-09 14:54:20 +02:00
Resources/translations [Validator] Reverted the changes done to the Size constraint in 3a5e84f4a7 2012-07-11 11:43:13 +02:00
Tests [Validator] Improved error messages displayed when the Valid constraint is misused 2012-07-11 18:23:09 +02:00
.gitignore [Components] Tests/Autoloading fixes 2012-05-01 17:51:41 +02:00
CHANGELOG.md [Validator] Deprecated the Size constraint 2012-07-11 15:48:36 +02:00
composer.json Changed composer constraint to allow Doctrine 2.3 too 2012-05-20 22:28:43 +02:00
Constraint.php Fixing email 2012-05-26 09:48:33 +02:00
ConstraintValidator.php [Validator] Fixed typo, updated CHANGELOG and UPGRADE 2012-04-17 17:19:12 +02:00
ConstraintValidatorFactory.php fixed CS 2011-06-08 12:16:48 +02:00
ConstraintValidatorFactoryInterface.php fixed CS 2012-07-09 14:54:20 +02:00
ConstraintValidatorInterface.php fixed CS 2012-07-09 14:54:20 +02:00
ConstraintViolation.php [Form] Allowed native framework errors to be mapped as well 2012-05-22 09:30:21 +02:00
ConstraintViolationList.php Removed extra new line 2012-07-10 01:10:06 +02:00
ExecutionContext.php [Form] Allowed native framework errors to be mapped as well 2012-05-22 09:30:21 +02:00
GlobalExecutionContext.php fixed CS 2012-02-02 11:21:34 +01:00
GraphWalker.php Fixing email 2012-05-26 09:48:33 +02:00
GroupSequenceProviderInterface.php fixed CS 2012-07-09 14:54:20 +02:00
LICENSE Updated LICENSE files copyright 2012-02-22 10:10:37 +01:00
ObjectInitializerInterface.php fixed CS 2012-07-09 14:54:20 +02:00
phpunit.xml.dist [Components] Tests/Autoloading fixes 2012-05-01 17:51:41 +02:00
README.md merged branch willdurand/fix-components (PR #4155) 2012-05-01 17:59:34 +02:00
Validator.php [Validator] Improved error messages displayed when the Valid constraint is misused 2012-07-11 18:23:09 +02:00
ValidatorContext.php [Validator] Fix docblocks 2012-07-11 15:00:23 +02:00
ValidatorContextInterface.php fixed CS 2012-07-09 14:54:20 +02:00
ValidatorFactory.php fixed CS 2012-07-09 14:54:20 +02:00
ValidatorInterface.php fixed CS 2012-07-09 14:54:20 +02:00

Validator Component

This component is based on the JSR-303 Bean Validation specification and enables specifying validation rules for classes using XML, YAML or annotations, which can then be checked against instances of these classes.

use Symfony\Component\Validator\Validator;
use Symfony\Component\Validator\Mapping\ClassMetadataFactory;
use Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\ConstraintValidatorFactory;

$validator = new Validator(
    new ClassMetadataFactory(new StaticMethodLoader()),
    new ConstraintValidatorFactory()
);

$constraint = new Assert\Collection(array(
    'name' => new Assert\Collection(array(
        'first_name' => new Assert\MinLength(101),
        'last_name'  => new Assert\MinLength(1),
    )),
    'email'    => new Assert\Email(),
    'simple'   => new Assert\MinLength(102),
    'gender'   => new Assert\Choice(array(3, 4)),
    'file'     => new Assert\File(),
    'password' => new Assert\MinLength(60),
));

$violations = $validator->validateValue($input, $constraint);

Resources

Silex integration:

https://github.com/fabpot/Silex/blob/master/src/Silex/Provider/ValidatorServiceProvider.php

Documentation:

http://symfony.com/doc/2.0/book/validation.html

JSR-303 Specification:

http://jcp.org/en/jsr/detail?id=303

You can run the unit tests with the following command:

phpunit

If you also want to run the unit tests that depend on other Symfony Components, install dev dependencies before running PHPUnit:

php composer.phar install --dev