Skip to content

Commit 7e9ecaf

Browse files
feature symfony#59641 [Serializer] register named normalizer & denormalizer aliases (mathroc)
This PR was squashed before being merged into the 7.3 branch. Discussion ---------- [Serializer] register named normalizer & denormalizer aliases | Q | A | ------------- | --- | Branch? | 7.3 | Bug fix? | no | New feature? | yes | Deprecations? | no | Issues | Fix symfony#59638 | License | MIT When defining named serializers register named aliases for NormalizerInterface & DenormalizerInterface too Commits ------- 4446ece [Serializer] register named normalizer & denormalizer aliases
2 parents dc38bb0 + 4446ece commit 7e9ecaf

File tree

3 files changed

+9
-0
lines changed

3 files changed

+9
-0
lines changed

src/Symfony/Component/Serializer/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ CHANGELOG
55
---
66

77
* Deprecate the `CompiledClassMetadataFactory` and `CompiledClassMetadataCacheWarmer` classes
8+
* Register `NormalizerInterface` and `DenormalizerInterface` aliases for named serializers
89

910
7.2
1011
---

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
use Symfony\Component\DependencyInjection\Reference;
2020
use Symfony\Component\Serializer\Debug\TraceableEncoder;
2121
use Symfony\Component\Serializer\Debug\TraceableNormalizer;
22+
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
23+
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
2224
use Symfony\Component\Serializer\SerializerInterface;
2325

2426
/**
@@ -153,6 +155,8 @@ private function configureNamedSerializers(ContainerBuilder $container): void
153155

154156
$container->registerChild($serializerId, 'serializer');
155157
$container->registerAliasForArgument($serializerId, SerializerInterface::class, $serializerName.'.serializer');
158+
$container->registerAliasForArgument($serializerId, NormalizerInterface::class, $serializerName.'.normalizer');
159+
$container->registerAliasForArgument($serializerId, DenormalizerInterface::class, $serializerName.'.denormalizer');
156160

157161
$this->configureSerializer($container, $serializerId, $normalizers, $encoders, $serializerName);
158162

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
use Symfony\Component\Serializer\Debug\TraceableNormalizer;
2020
use Symfony\Component\Serializer\Debug\TraceableSerializer;
2121
use Symfony\Component\Serializer\DependencyInjection\SerializerPass;
22+
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
23+
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
2224
use Symfony\Component\Serializer\SerializerInterface;
2325

2426
/**
@@ -594,6 +596,8 @@ public function testNamedSerializersAreRegistered()
594596
$this->assertTrue($container->hasAlias(\sprintf('%s $apiSerializer', SerializerInterface::class)));
595597
$this->assertTrue($container->hasDefinition('serializer.api2'));
596598
$this->assertTrue($container->hasAlias(\sprintf('%s $api2Serializer', SerializerInterface::class)));
599+
$this->assertTrue($container->hasAlias(\sprintf('%s $api2Normalizer', NormalizerInterface::class)));
600+
$this->assertTrue($container->hasAlias(\sprintf('%s $api2Denormalizer', DenormalizerInterface::class)));
597601
}
598602

599603
public function testNormalizersAndEncodersAreDecoratedAndOrderedWhenCollectingDataForNamedSerializers()

0 commit comments

Comments
 (0)