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-04-17 16:54:40 +02:00
..
Constraints [Validator] Renamed ConstraintValidatorInterface::isValid() to validate() because of the lack of a return value 2012-04-17 16:46:43 +02:00
Exception fixed CS 2011-06-08 12:16:48 +02:00
Mapping Fix typo 2012-04-05 19:10:13 +02:00
Tests [Validator] Renamed ConstraintValidatorInterface::isValid() to validate() because of the lack of a return value 2012-04-17 16:46:43 +02:00
composer.json merged 2.0 2012-03-11 18:00:10 +01:00
Constraint.php fixed CS 2011-12-18 14:42:59 +01:00
ConstraintValidator.php [Validator] Added default validate() implementation to ConstraintValidator for BC 2012-04-17 16:54:40 +02:00
ConstraintValidatorFactory.php fixed CS 2011-06-08 12:16:48 +02:00
ConstraintValidatorFactoryInterface.php [DoctrineBridge] fixed some CS 2011-12-13 10:22:12 +01:00
ConstraintValidatorInterface.php [Validator] Renamed ConstraintValidatorInterface::isValid() to validate() because of the lack of a return value 2012-04-17 16:46:43 +02:00
ConstraintViolation.php [Validator] added support for plural messages 2012-02-09 07:57:17 +01:00
ConstraintViolationList.php [Validator] Deprecated ConstraintValidator methods setMessage(), getMessageTemplate() and getMessageParameters() 2012-02-01 14:03:13 +01:00
ExecutionContext.php [Validator] added support for plural messages 2012-02-09 07:57:17 +01:00
GlobalExecutionContext.php fixed CS 2012-02-02 11:21:34 +01:00
GraphWalker.php [Validator] Renamed ConstraintValidatorInterface::isValid() to validate() because of the lack of a return value 2012-04-17 16:46:43 +02:00
GroupSequenceProviderInterface.php [Validator] Renamed getValidationGroups to getGroupSequence 2012-02-02 20:27:50 +01:00
LICENSE Updated LICENSE files copyright 2012-02-22 10:10:37 +01:00
ObjectInitializerInterface.php [Validator] tagged the public @api 2011-07-20 10:37:57 +02:00
phpunit.xml.dist [PhpUnit] Fix the path to the boostrap files in the components 2012-03-30 13:49:28 +02:00
README.md moved component and bridge unit tests to the src/ directory 2012-03-29 08:37:22 +02:00
Validator.php [Validator] Fixed: Validator::validateValue() propagates empty validation root instead of the provided value 2012-01-30 18:43:47 +01:00
ValidatorContext.php fixed CS (missing or misplaced license blocks) 2012-04-02 00:52:14 -03:00
ValidatorContextInterface.php fixed CS (missing or misplaced license blocks) 2012-04-02 00:52:14 -03:00
ValidatorFactory.php fixed CS (missing or misplaced license blocks) 2012-04-02 00:52:14 -03:00
ValidatorInterface.php [DoctrineBridge] fixed some CS 2011-12-13 10:22:12 +01: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\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 -c src/Symfony/Component/Validator/

If you also want to run the unit tests that depend on other Symfony Components, declare the following environment variables before running PHPUnit:

export SYMFONY_YAML=../path/to/Yaml
export SYMFONY_LOCALE=../path/to/Locale
export SYMFONY_HTTP_FOUNDATION=../path/to/HttpFoundation
export DOCTRINE_COMMON=../path/to/doctrine-common