|
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