Commit 5cb9ab81 authored by Fabien Potencier's avatar Fabien Potencier

merged branch igorw/validator-2.2 (PR #606)

This PR was merged into the master branch.

Commits
-------

310d316d Make ValidatorServiceProvider work with both 2.1 and 2.2 of symfony/validator

Discussion
----------

Make ValidatorServiceProvider work with both 2.1 and 2.2 of symfony/validator

Closes #584, #585.

---------------------------------------------------------------------------

by davedevelopment at 2013-01-23T14:59:35Z

👍 Let's get this in
parents b42bc687 310d316d
......@@ -15,6 +15,7 @@ use Silex\Application;
use Silex\ServiceProviderInterface;
use Symfony\Component\Validator\Validator;
use Symfony\Component\Validator\DefaultTranslator;
use Symfony\Component\Validator\Mapping\ClassMetadataFactory;
use Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader;
use Symfony\Component\Validator\ConstraintValidatorFactory;
......@@ -29,15 +30,28 @@ class ValidatorServiceProvider implements ServiceProviderInterface
public function register(Application $app)
{
$app['validator'] = $app->share(function ($app) {
if (isset($app['translator'])) {
$r = new \ReflectionClass('Symfony\Component\Validator\Validator');
if (isset($app['translator'])) {
$app['translator']->addResource('xliff', dirname($r->getFilename()).'/Resources/translations/validators.'.$app['locale'].'.xlf', $app['locale'], 'validators');
}
$params = $r->getConstructor()->getParameters();
if ('validatorInitializers' === $params[2]->getName()) {
// BC: to be removed before 1.0
// Compatibility with symfony/validator 2.1
// can be removed once silex requires 2.2
return new Validator(
$app['validator.mapping.class_metadata_factory'],
$app['validator.validator_factory']
);
} else {
return new Validator(
$app['validator.mapping.class_metadata_factory'],
$app['validator.validator_factory'],
isset($app['translator']) ? $app['translator'] : new DefaultTranslator()
);
}
});
$app['validator.mapping.class_metadata_factory'] = $app->share(function ($app) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment