Skip to content

Commit 1c71023

Browse files
committed
[Validator] Add the When constraint and validator
1 parent 666113b commit 1c71023

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@
221221
use Symfony\Component\Translation\Translator;
222222
use Symfony\Component\Uid\Factory\UuidFactory;
223223
use Symfony\Component\Uid\UuidV4;
224+
use Symfony\Component\Validator\Constraints\WhenValidator;
224225
use Symfony\Component\Validator\ConstraintValidatorInterface;
225226
use Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader;
226227
use Symfony\Component\Validator\ObjectInitializerInterface;
@@ -1570,6 +1571,10 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
15701571
if (!class_exists(ExpressionLanguage::class)) {
15711572
$container->removeDefinition('validator.expression_language');
15721573
}
1574+
1575+
if (!class_exists(WhenValidator::class)) {
1576+
$container->removeDefinition('validator.when');
1577+
}
15731578
}
15741579

15751580
private function registerValidatorMapping(ContainerBuilder $container, array $config, array &$files)

Resources/config/validator.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Symfony\Component\Validator\Constraints\EmailValidator;
1818
use Symfony\Component\Validator\Constraints\ExpressionValidator;
1919
use Symfony\Component\Validator\Constraints\NotCompromisedPasswordValidator;
20+
use Symfony\Component\Validator\Constraints\WhenValidator;
2021
use Symfony\Component\Validator\ContainerConstraintValidatorFactory;
2122
use Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader;
2223
use Symfony\Component\Validator\Validation;
@@ -95,6 +96,12 @@
9596
'alias' => NotCompromisedPasswordValidator::class,
9697
])
9798

99+
->set('validator.when', WhenValidator::class)
100+
->args([service('validator.expression_language')->nullOnInvalid()])
101+
->tag('validator.constraint_validator', [
102+
'alias' => WhenValidator::class,
103+
])
104+
98105
->set('validator.property_info_loader', PropertyInfoLoader::class)
99106
->args([
100107
service('property_info'),

0 commit comments

Comments
 (0)