From 0d7657b306b79bc2f6657f64d5ee543f0cc6ca26 Mon Sep 17 00:00:00 2001 From: Maxime Steinhausser Date: Thu, 19 Oct 2017 20:21:06 +0200 Subject: [PATCH] [FrameworkBundle][Serializer] Move normalizer/encoders definitions to xml file & remove unnecessary checks --- .../FrameworkExtension.php | 40 +------------------ .../Resources/config/serializer.xml | 23 +++++++++++ .../FrameworkExtensionTest.php | 17 -------- 3 files changed, 24 insertions(+), 56 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 234b2d0cb268..f19884017d4d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -47,15 +47,10 @@ use Symfony\Component\PropertyInfo\PropertyListExtractorInterface; use Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface; use Symfony\Component\Security\Core\Security; -use Symfony\Component\Serializer\Encoder\CsvEncoder; use Symfony\Component\Serializer\Encoder\DecoderInterface; use Symfony\Component\Serializer\Encoder\EncoderInterface; -use Symfony\Component\Serializer\Encoder\YamlEncoder; use Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory; -use Symfony\Component\Serializer\Normalizer\DataUriNormalizer; -use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; -use Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; use Symfony\Component\Validator\ConstraintValidatorInterface; use Symfony\Component\Validator\ObjectInitializerInterface; @@ -1278,39 +1273,6 @@ private function registerSecurityCsrfConfiguration(array $config, ContainerBuild */ private function registerSerializerConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader) { - if (class_exists('Symfony\Component\Serializer\Normalizer\DataUriNormalizer')) { - // Run before serializer.normalizer.object - $definition = $container->register('serializer.normalizer.data_uri', DataUriNormalizer::class); - $definition->setPublic(false); - $definition->addTag('serializer.normalizer', array('priority' => -920)); - } - - if (class_exists('Symfony\Component\Serializer\Normalizer\DateTimeNormalizer')) { - // Run before serializer.normalizer.object - $definition = $container->register('serializer.normalizer.datetime', DateTimeNormalizer::class); - $definition->setPublic(false); - $definition->addTag('serializer.normalizer', array('priority' => -910)); - } - - if (class_exists('Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer')) { - // Run before serializer.normalizer.object - $definition = $container->register('serializer.normalizer.json_serializable', JsonSerializableNormalizer::class); - $definition->setPublic(false); - $definition->addTag('serializer.normalizer', array('priority' => -900)); - } - - if (class_exists(YamlEncoder::class) && defined('Symfony\Component\Yaml\Yaml::DUMP_OBJECT')) { - $definition = $container->register('serializer.encoder.yaml', YamlEncoder::class); - $definition->setPublic(false); - $definition->addTag('serializer.encoder'); - } - - if (class_exists(CsvEncoder::class)) { - $definition = $container->register('serializer.encoder.csv', CsvEncoder::class); - $definition->setPublic(false); - $definition->addTag('serializer.encoder'); - } - $loader->load('serializer.xml'); $chainLoader = $container->getDefinition('serializer.mapping.chain_loader'); @@ -1367,7 +1329,7 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder $container->getDefinition('serializer.mapping.class_metadata_factory')->replaceArgument( 1, new Reference($config['cache']) ); - } elseif (!$container->getParameter('kernel.debug') && class_exists(CacheClassMetadataFactory::class)) { + } elseif (!$container->getParameter('kernel.debug')) { $cacheMetadataFactory = new Definition( CacheClassMetadataFactory::class, array( diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml index d350091a0182..d49feadf9b90 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml @@ -25,6 +25,21 @@ + + + + + + + + + + + + + + + null @@ -86,6 +101,14 @@ + + + + + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index 11795e54cb6b..44a853dd148e 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -35,7 +35,6 @@ use Symfony\Component\PropertyAccess\PropertyAccessor; use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader; use Symfony\Component\Serializer\Serializer; -use Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory; use Symfony\Component\Serializer\Mapping\Loader\XmlFileLoader; use Symfony\Component\Serializer\Mapping\Loader\YamlFileLoader; use Symfony\Component\Serializer\Normalizer\DataUriNormalizer; @@ -728,10 +727,6 @@ public function testRegisterSerializerExtractor() public function testDataUriNormalizerRegistered() { - if (!class_exists('Symfony\Component\Serializer\Normalizer\DataUriNormalizer')) { - $this->markTestSkipped('The DataUriNormalizer has been introduced in the Serializer Component version 3.1.'); - } - $container = $this->createContainerFromFile('full'); $definition = $container->getDefinition('serializer.normalizer.data_uri'); @@ -743,10 +738,6 @@ public function testDataUriNormalizerRegistered() public function testDateTimeNormalizerRegistered() { - if (!class_exists('Symfony\Component\Serializer\Normalizer\DateTimeNormalizer')) { - $this->markTestSkipped('The DateTimeNormalizer has been introduced in the Serializer Component version 3.1.'); - } - $container = $this->createContainerFromFile('full'); $definition = $container->getDefinition('serializer.normalizer.datetime'); @@ -758,10 +749,6 @@ public function testDateTimeNormalizerRegistered() public function testJsonSerializableNormalizerRegistered() { - if (!class_exists('Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer')) { - $this->markTestSkipped('The JsonSerializableNormalizer has been introduced in the Serializer Component version 3.1.'); - } - $container = $this->createContainerFromFile('full'); $definition = $container->getDefinition('serializer.normalizer.json_serializable'); @@ -784,10 +771,6 @@ public function testObjectNormalizerRegistered() public function testSerializerCacheActivated() { - if (!class_exists(CacheClassMetadataFactory::class) || !method_exists(XmlFileLoader::class, 'getMappedClasses') || !method_exists(YamlFileLoader::class, 'getMappedClasses')) { - $this->markTestSkipped('The Serializer default cache warmer has been introduced in the Serializer Component version 3.2.'); - } - $container = $this->createContainerFromFile('serializer_enabled'); $this->assertTrue($container->hasDefinition('serializer.mapping.cache_class_metadata_factory'));