Skip to content

Commit c697ea5

Browse files
committed
remove definition if Translator is not available
1 parent 03357b8 commit c697ea5

File tree

5 files changed

+10
-14
lines changed

5 files changed

+10
-14
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1879,6 +1879,10 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
18791879
$container->removeDefinition('serializer.normalizer.mime_message');
18801880
}
18811881

1882+
if (!class_exists(Translator::class)) {
1883+
$container->removeDefinition('serializer.normalizer.translatable');
1884+
}
1885+
18821886
// compat with Symfony < 6.3
18831887
if (!is_subclass_of(ProblemNormalizer::class, SerializerAwareInterface::class)) {
18841888
$container->getDefinition('serializer.normalizer.problem')

src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
->tag('serializer.normalizer', ['priority' => -890])
116116

117117
->set('serializer.normalizer.translatable', TranslatableNormalizer::class)
118-
->args(['$translator' => service('translator')->nullOnInvalid()])
118+
->args(['$translator' => service('translator')])
119119
->tag('serializer.normalizer', ['priority' => -890])
120120

121121
->set('serializer.normalizer.form_error', FormErrorNormalizer::class)

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1596,7 +1596,7 @@ public function testTranslatableNormalizerRegistered()
15961596

15971597
$this->assertEquals(TranslatableNormalizer::class, $definition->getClass());
15981598
$this->assertEquals(-890, $tag[0]['priority']);
1599-
$this->assertEquals(new Reference('translator', ContainerInterface::NULL_ON_INVALID_REFERENCE), $definition->getArgument('$translator'));
1599+
$this->assertEquals(new Reference('translator'), $definition->getArgument('$translator'));
16001600
}
16011601

16021602
public function testSerializerCacheActivated()

src/Symfony/Component/Serializer/Normalizer/TranslatableNormalizer.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ final class TranslatableNormalizer implements NormalizerInterface
2424
];
2525

2626
public function __construct(
27+
private readonly TranslatorInterface $translator,
2728
array $defaultContext = [],
28-
private readonly ?TranslatorInterface $translator = null,
2929
) {
3030
$this->defaultContext = array_merge($this->defaultContext, $defaultContext);
3131
}
@@ -44,7 +44,7 @@ public function normalize(mixed $object, string $format = null, array $context =
4444

4545
public function supportsNormalization(mixed $data, string $format = null, array $context = []): bool
4646
{
47-
return null !== $this->translator && $data instanceof TranslatableInterface;
47+
return $data instanceof TranslatableInterface;
4848
}
4949

5050
public function getSupportedTypes(?string $format): array

src/Symfony/Component/Serializer/Tests/Normalizer/TranslatableNormalizerTest.php

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class TranslatableNormalizerTest extends TestCase
2222

2323
protected function setUp(): void
2424
{
25-
$this->normalizer = new TranslatableNormalizer([], $this->createMock(TranslatorInterface::class));
25+
$this->normalizer = new TranslatableNormalizer($this->createMock(TranslatorInterface::class));
2626
}
2727

2828
public function testSupportsNormalization()
@@ -31,14 +31,6 @@ public function testSupportsNormalization()
3131
$this->assertFalse($this->normalizer->supportsNormalization(new \stdClass()));
3232
}
3333

34-
public function testSupportsNormalizationWithoutTranslator()
35-
{
36-
$normalizer = new TranslatableNormalizer();
37-
38-
$this->assertFalse($normalizer->supportsNormalization(new TestMessage()));
39-
$this->assertFalse($normalizer->supportsNormalization(new \stdClass()));
40-
}
41-
4234
public function testNormalize()
4335
{
4436
$message = new TestMessage();
@@ -51,8 +43,8 @@ public function testNormalize()
5143
public function testNormalizeWithNormalizationLocalePassedInConstructor()
5244
{
5345
$normalizer = new TranslatableNormalizer(
54-
['translatable_normalization_locale' => 'es'],
5546
$this->createMock(TranslatorInterface::class),
47+
['translatable_normalization_locale' => 'es'],
5648
);
5749
$message = new TestMessage();
5850

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy