Skip to content

Commit 811d8d6

Browse files
committed
feature #17630 [FrameworkBundle] Register the DateTimeNormalizer (dunglas)
This PR was squashed before being merged into the 3.1-dev branch (closes #17630). Discussion ---------- [FrameworkBundle] Register the DateTimeNormalizer | Q | A | ------------- | --- | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | n/a | License | MIT | Doc PR | todo Commits ------- 5a76eb2 [FrameworkBundle] Register the DateTimeNormalizer
2 parents dcdf2a3 + 15d7ab4 commit 811d8d6

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
2525
use Symfony\Component\Config\FileLocator;
2626
use Symfony\Component\Serializer\Normalizer\DataUriNormalizer;
27+
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
2728
use Symfony\Component\Validator\Validation;
2829

2930
/**
@@ -902,6 +903,13 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
902903
$definition->addTag('serializer.normalizer', ['priority' => -920]);
903904
}
904905

906+
if (class_exists('Symfony\Component\Serializer\Normalizer\DateTimeNormalizer')) {
907+
// Run before serializer.normalizer.object
908+
$definition = $container->register('serializer.normalizer.datetime', DateTimeNormalizer::class);
909+
$definition->setPublic(false);
910+
$definition->addTag('serializer.normalizer', array('priority' => -910));
911+
}
912+
905913
$loader->load('serializer.xml');
906914
$chainLoader = $container->getDefinition('serializer.mapping.chain_loader');
907915

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
2020
use Symfony\Component\DependencyInjection\Reference;
2121
use Symfony\Component\Serializer\Normalizer\DataUriNormalizer;
22+
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
2223

2324
abstract class FrameworkExtensionTest extends TestCase
2425
{
@@ -469,6 +470,21 @@ public function testDataUriNormalizerRegistered()
469470
$this->assertEquals(-920, $tag[0]['priority']);
470471
}
471472

473+
public function testDateTimeNormalizerRegistered()
474+
{
475+
if (!class_exists('Symfony\Component\Serializer\Normalizer\DateTimeNormalizer')) {
476+
$this->markTestSkipped('The DateTimeNormalizer has been introduced in the Serializer Component version 3.1.');
477+
}
478+
479+
$container = $this->createContainerFromFile('full');
480+
481+
$definition = $container->getDefinition('serializer.normalizer.datetime');
482+
$tag = $definition->getTag('serializer.normalizer');
483+
484+
$this->assertEquals(DateTimeNormalizer::class, $definition->getClass());
485+
$this->assertEquals(-910, $tag[0]['priority']);
486+
}
487+
472488
public function testAssetHelperWhenAssetsAreEnabled()
473489
{
474490
$container = $this->createContainerFromFile('full');

0 commit comments

Comments
 (0)