Skip to content

Commit 15d7ab4

Browse files
dunglasfabpot
authored andcommitted
[FrameworkBundle] Register the DateTimeNormalizer
1 parent 803253e commit 15d7ab4

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
@@ -23,6 +23,7 @@
2323
use Symfony\Component\Finder\Finder;
2424
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
2525
use Symfony\Component\Config\FileLocator;
26+
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
2627
use Symfony\Component\Validator\Validation;
2728

2829
/**
@@ -894,6 +895,13 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
894895
return;
895896
}
896897

898+
if (class_exists('Symfony\Component\Serializer\Normalizer\DateTimeNormalizer')) {
899+
// Run before serializer.normalizer.object
900+
$definition = $container->register('serializer.normalizer.datetime', DateTimeNormalizer::class);
901+
$definition->setPublic(false);
902+
$definition->addTag('serializer.normalizer', array('priority' => -910));
903+
}
904+
897905
$loader->load('serializer.xml');
898906
$chainLoader = $container->getDefinition('serializer.mapping.chain_loader');
899907

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Symfony\Component\DependencyInjection\Loader\ClosureLoader;
1919
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
2020
use Symfony\Component\DependencyInjection\Reference;
21+
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
2122

2223
abstract class FrameworkExtensionTest extends TestCase
2324
{
@@ -453,6 +454,21 @@ public function testRegisterSerializerExtractor()
453454
$this->assertEquals(array('priority' => -999), $tag[0]);
454455
}
455456

457+
public function testDateTimeNormalizerRegistered()
458+
{
459+
if (!class_exists('Symfony\Component\Serializer\Normalizer\DateTimeNormalizer')) {
460+
$this->markTestSkipped('The DateTimeNormalizer has been introduced in the Serializer Component version 3.1.');
461+
}
462+
463+
$container = $this->createContainerFromFile('full');
464+
465+
$definition = $container->getDefinition('serializer.normalizer.datetime');
466+
$tag = $definition->getTag('serializer.normalizer');
467+
468+
$this->assertEquals(DateTimeNormalizer::class, $definition->getClass());
469+
$this->assertEquals(-910, $tag[0]['priority']);
470+
}
471+
456472
public function testAssetHelperWhenAssetsAreEnabled()
457473
{
458474
$container = $this->createContainerFromFile('full');

0 commit comments

Comments
 (0)