Skip to content

Commit 7750b35

Browse files
[Serializer] Add #[ExtendsSerializationFor] to declare new serialization attributes for a class
1 parent 0e3a6e3 commit 7750b35

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@
188188
use Symfony\Component\Semaphore\SemaphoreFactory;
189189
use Symfony\Component\Semaphore\Store\StoreFactory as SemaphoreStoreFactory;
190190
use Symfony\Component\Serializer\Attribute as SerializerMapping;
191+
use Symfony\Component\Serializer\Attribute\ExtendsSerializationFor;
191192
use Symfony\Component\Serializer\DependencyInjection\AttributeMetadataPass as SerializerAttributeMetadataPass;
192193
use Symfony\Component\Serializer\Encoder\DecoderInterface;
193194
use Symfony\Component\Serializer\Encoder\EncoderInterface;
@@ -2164,6 +2165,11 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
21642165
$container->getDefinition('serializer.normalizer.property')->setArgument(5, $defaultContext);
21652166

21662167
$container->setParameter('.serializer.named_serializers', $config['named_serializers'] ?? []);
2168+
2169+
$container->registerAttributeForAutoconfiguration(ExtendsSerializationFor::class, function (ChildDefinition $definition, ExtendsSerializationFor $attribute) {
2170+
$definition->addTag('serializer.attribute_metadata', ['for' => $attribute->class])
2171+
->addTag('container.excluded', ['source' => 'because it\'s a serializer metadata extension']);
2172+
});
21672173
}
21682174

21692175
private function registerJsonStreamerConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader): void

0 commit comments

Comments
 (0)