Skip to content

Commit 693fa98

Browse files
committed
[Serializer][Validator] Attribute metadata no longer requires container.excluded tags
1 parent 1d9cac6 commit 693fa98

File tree

4 files changed

+12
-54
lines changed

4 files changed

+12
-54
lines changed

src/Symfony/Component/Serializer/DependencyInjection/AttributeMetadataPass.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ public function process(ContainerBuilder $container): void
3333
if (!$definition->hasTag('serializer.attribute_metadata')) {
3434
continue;
3535
}
36-
if (!$definition->hasTag('container.excluded')) {
37-
throw new InvalidArgumentException(\sprintf('The resource "%s" tagged "serializer.attribute_metadata" is missing the "container.excluded" tag.', $id));
38-
}
3936
$class = $resolve($definition->getClass());
4037
foreach ($definition->getTag('serializer.attribute_metadata') as $attributes) {
4138
if ($class !== $for = $attributes['for'] ?? $class) {

src/Symfony/Component/Serializer/Tests/DependencyInjection/AttributeMetadataPassTest.php

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,14 @@ public function testProcessWithTaggedServices()
5252
->setArguments([false, []]);
5353

5454
$container->register('service1', '%user_entity.class%')
55-
->addTag('serializer.attribute_metadata')
56-
->addTag('container.excluded');
55+
->addTag('serializer.attribute_metadata');
5756
$container->register('service2', 'App\Entity\Product')
58-
->addTag('serializer.attribute_metadata')
59-
->addTag('container.excluded');
57+
->addTag('serializer.attribute_metadata');
6058
$container->register('service3', 'App\Entity\Order')
61-
->addTag('serializer.attribute_metadata')
62-
->addTag('container.excluded');
59+
->addTag('serializer.attribute_metadata');
6360
// Classes should be deduplicated
6461
$container->register('service4', 'App\Entity\Order')
65-
->addTag('serializer.attribute_metadata')
66-
->addTag('container.excluded');
62+
->addTag('serializer.attribute_metadata');
6763

6864
(new AttributeMetadataPass())->process($container);
6965

@@ -78,18 +74,6 @@ public function testProcessWithTaggedServices()
7874
$this->assertSame([false, $expectedClasses], $arguments);
7975
}
8076

81-
public function testThrowsWhenMissingExcludedTag()
82-
{
83-
$container = new ContainerBuilder();
84-
$container->register('serializer.mapping.attribute_loader');
85-
86-
$container->register('service_without_excluded', 'App\\Entity\\User')
87-
->addTag('serializer.attribute_metadata');
88-
89-
$this->expectException(InvalidArgumentException::class);
90-
(new AttributeMetadataPass())->process($container);
91-
}
92-
9377
public function testProcessWithForOptionAndMatchingMembers()
9478
{
9579
$sourceClass = _AttrMeta_Source::class;
@@ -100,8 +84,7 @@ public function testProcessWithForOptionAndMatchingMembers()
10084
->setArguments([false, []]);
10185

10286
$container->register('service.source', $sourceClass)
103-
->addTag('serializer.attribute_metadata', ['for' => $targetClass])
104-
->addTag('container.excluded');
87+
->addTag('serializer.attribute_metadata', ['for' => $targetClass]);
10588

10689
(new AttributeMetadataPass())->process($container);
10790

@@ -119,8 +102,7 @@ public function testProcessWithForOptionAndMissingMemberThrows()
119102
->setArguments([false, []]);
120103

121104
$container->register('service.source', $sourceClass)
122-
->addTag('serializer.attribute_metadata', ['for' => $targetClass])
123-
->addTag('container.excluded');
105+
->addTag('serializer.attribute_metadata', ['for' => $targetClass]);
124106

125107
$this->expectException(MappingException::class);
126108
(new AttributeMetadataPass())->process($container);

src/Symfony/Component/Validator/DependencyInjection/AttributeMetadataPass.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ public function process(ContainerBuilder $container): void
3333
if (!$definition->hasTag('validator.attribute_metadata')) {
3434
continue;
3535
}
36-
if (!$definition->hasTag('container.excluded')) {
37-
throw new InvalidArgumentException(\sprintf('The resource "%s" tagged "validator.attribute_metadata" is missing the "container.excluded" tag.', $id));
38-
}
3936
$class = $resolve($definition->getClass());
4037
foreach ($definition->getTag('validator.attribute_metadata') as $attributes) {
4138
if ($class !== $for = $attributes['for'] ?? $class) {

src/Symfony/Component/Validator/Tests/DependencyInjection/AttributeMetadataPassTest.php

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,14 @@ public function testProcessWithTaggedServices()
4949
->addMethodCall('addAttributeMappings', [[]]);
5050

5151
$container->register('service1', '%user_entity.class%')
52-
->addTag('validator.attribute_metadata')
53-
->addTag('container.excluded');
52+
->addTag('validator.attribute_metadata');
5453
$container->register('service2', 'App\Entity\Product')
55-
->addTag('validator.attribute_metadata')
56-
->addTag('container.excluded');
54+
->addTag('validator.attribute_metadata');
5755
$container->register('service3', 'App\Entity\Order')
58-
->addTag('validator.attribute_metadata')
59-
->addTag('container.excluded');
56+
->addTag('validator.attribute_metadata');
6057
// Classes should be deduplicated
6158
$container->register('service4', 'App\Entity\Order')
62-
->addTag('validator.attribute_metadata')
63-
->addTag('container.excluded');
59+
->addTag('validator.attribute_metadata');
6460

6561
(new AttributeMetadataPass())->process($container);
6662

@@ -77,18 +73,6 @@ public function testProcessWithTaggedServices()
7773
$this->assertEquals([$expectedClasses], $methodCalls[1][1]);
7874
}
7975

80-
public function testThrowsWhenMissingExcludedTag()
81-
{
82-
$container = new ContainerBuilder();
83-
$container->register('validator.builder');
84-
85-
$container->register('service_without_excluded', 'App\\Entity\\User')
86-
->addTag('validator.attribute_metadata');
87-
88-
$this->expectException(InvalidArgumentException::class);
89-
(new AttributeMetadataPass())->process($container);
90-
}
91-
9276
public function testProcessWithForOptionAndMatchingMembers()
9377
{
9478
$sourceClass = _AttrMeta_Source::class;
@@ -98,8 +82,7 @@ public function testProcessWithForOptionAndMatchingMembers()
9882
$container->register('validator.builder');
9983

10084
$container->register('service.source', $sourceClass)
101-
->addTag('validator.attribute_metadata', ['for' => $targetClass])
102-
->addTag('container.excluded');
85+
->addTag('validator.attribute_metadata', ['for' => $targetClass]);
10386

10487
(new AttributeMetadataPass())->process($container);
10588

@@ -118,8 +101,7 @@ public function testProcessWithForOptionAndMissingMemberThrows()
118101
$container->register('validator.builder');
119102

120103
$container->register('service.source', $sourceClass)
121-
->addTag('validator.attribute_metadata', ['for' => $targetClass])
122-
->addTag('container.excluded');
104+
->addTag('validator.attribute_metadata', ['for' => $targetClass]);
123105

124106
$this->expectException(MappingException::class);
125107
(new AttributeMetadataPass())->process($container);

0 commit comments

Comments
 (0)