|
216 | 216 | use Symfony\Component\TypeInfo\TypeResolver\TypeResolverInterface;
|
217 | 217 | use Symfony\Component\Uid\Factory\UuidFactory;
|
218 | 218 | use Symfony\Component\Uid\UuidV4;
|
| 219 | +use Symfony\Component\Validator\Attribute\ExtendsValidationFor; |
219 | 220 | use Symfony\Component\Validator\Constraint;
|
220 | 221 | use Symfony\Component\Validator\Constraints\ExpressionLanguageProvider;
|
221 | 222 | use Symfony\Component\Validator\Constraints\Traverse;
|
@@ -1821,10 +1822,16 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
|
1821 | 1822 | if (class_exists(ValidatorAttributeMetadataPass::class) && (!($config['enable_attributes'] ?? false) || !$container->getParameter('kernel.debug')) && trait_exists(ArgumentTrait::class)) {
|
1822 | 1823 | // The $reflector argument hints at where the attribute could be used
|
1823 | 1824 | $container->registerAttributeForAutoconfiguration(Constraint::class, function (ChildDefinition $definition, Constraint $attribute, \ReflectionClass|\ReflectionMethod|\ReflectionProperty $reflector) {
|
1824 |
| - $definition->addTag('validator.attribute_metadata'); |
| 1825 | + $definition->addTag('validator.attribute_metadata') |
| 1826 | + ->addTag('container.excluded', ['source' => 'because it\'s a validator constraint extension']); |
1825 | 1827 | });
|
1826 | 1828 | }
|
1827 | 1829 |
|
| 1830 | + $container->registerAttributeForAutoconfiguration(ExtendsValidationFor::class, function (ChildDefinition $definition, ExtendsValidationFor $attribute) { |
| 1831 | + $definition->addTag('validator.attribute_metadata', ['for' => $attribute->class]) |
| 1832 | + ->addTag('container.excluded', ['source' => 'because it\'s a validator constraint extension']); |
| 1833 | + }); |
| 1834 | + |
1828 | 1835 | if ($config['enable_attributes'] ?? false) {
|
1829 | 1836 | $validatorBuilder->addMethodCall('enableAttributeMapping');
|
1830 | 1837 | }
|
|
0 commit comments