Skip to content

Commit 7256d0d

Browse files
[Validator] Fix registering "is_valid()" for #[Expression]
1 parent a943a58 commit 7256d0d

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@
173173
use Symfony\Component\Translation\Translator;
174174
use Symfony\Component\Uid\Factory\UuidFactory;
175175
use Symfony\Component\Uid\UuidV4;
176+
use Symfony\Component\Validator\Constraints\ExpressionLanguageProvider;
176177
use Symfony\Component\Validator\ConstraintValidatorInterface;
177178
use Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader;
178179
use Symfony\Component\Validator\ObjectInitializerInterface;
@@ -1664,6 +1665,10 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
16641665
if (!class_exists(ExpressionLanguage::class)) {
16651666
$container->removeDefinition('validator.expression_language');
16661667
}
1668+
1669+
if (!class_exists(ExpressionLanguageProvider::class)) {
1670+
$container->removeDefinition('validator.expression_language_provider');
1671+
}
16671672
}
16681673

16691674
private function registerValidatorMapping(ContainerBuilder $container, array $config, array &$files): void

Resources/config/validator.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Symfony\Component\Cache\Adapter\PhpArrayAdapter;
1616
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
1717
use Symfony\Component\Validator\Constraints\EmailValidator;
18+
use Symfony\Component\Validator\Constraints\ExpressionLanguageProvider;
1819
use Symfony\Component\Validator\Constraints\ExpressionValidator;
1920
use Symfony\Component\Validator\Constraints\NoSuspiciousCharactersValidator;
2021
use Symfony\Component\Validator\Constraints\NotCompromisedPasswordValidator;
@@ -82,11 +83,16 @@
8283

8384
->set('validator.expression_language', ExpressionLanguage::class)
8485
->args([service('cache.validator_expression_language')->nullOnInvalid()])
86+
->call('registerProvider', [
87+
service('validator.expression_language_provider')->ignoreOnInvalid(),
88+
])
8589

8690
->set('cache.validator_expression_language')
8791
->parent('cache.system')
8892
->tag('cache.pool')
8993

94+
->set('validator.expression_language_provider', ExpressionLanguageProvider::class)
95+
9096
->set('validator.email', EmailValidator::class)
9197
->args([
9298
abstract_arg('Default mode'),

0 commit comments

Comments
 (0)