diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index b8f0864adc..f49e337a39 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -99,7 +99,6 @@ use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; use Symfony\Component\Serializer\Encoder\DecoderInterface; use Symfony\Component\Serializer\Encoder\EncoderInterface; use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata; -use Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory; use Symfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer; use Symfony\Component\Serializer\Normalizer\DateIntervalNormalizer; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; @@ -1505,18 +1504,8 @@ class FrameworkExtension extends Extension $chainLoader->replaceArgument(0, $serializerLoaders); $container->getDefinition('serializer.mapping.cache_warmer')->replaceArgument(0, $serializerLoaders); - if (!$container->getParameter('kernel.debug')) { - $cacheMetadataFactory = new Definition( - CacheClassMetadataFactory::class, - [ - new Reference('serializer.mapping.cache_class_metadata_factory.inner'), - new Reference('serializer.mapping.cache.symfony'), - ] - ); - $cacheMetadataFactory->setPublic(false); - $cacheMetadataFactory->setDecoratedService('serializer.mapping.class_metadata_factory'); - - $container->setDefinition('serializer.mapping.cache_class_metadata_factory', $cacheMetadataFactory); + if ($container->getParameter('kernel.debug')) { + $container->removeDefinition('serializer.mapping.cache_class_metadata_factory'); } if (isset($config['name_converter']) && $config['name_converter']) { @@ -1551,6 +1540,10 @@ class FrameworkExtension extends Extension $definition->addTag('property_info.description_extractor', ['priority' => -1000]); $definition->addTag('property_info.type_extractor', ['priority' => -1001]); } + + if ($container->getParameter('kernel.debug')) { + $container->removeDefinition('property_info.cache'); + } } private function registerLockConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader) diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml index 4fd8b70fac..a5060e2cd6 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml @@ -36,6 +36,10 @@ + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/property_info.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/property_info.xml index 4768cc98d4..cd78d7f95e 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/property_info.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/property_info.xml @@ -21,6 +21,11 @@ + + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml index eafb9b9232..23da8b07bc 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml @@ -104,6 +104,11 @@ + + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index 693c4de625..25b7353523 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -1357,6 +1357,22 @@ abstract class FrameworkExtensionTest extends TestCase $this->assertTrue($container->has('property_info')); } + public function testPropertyInfoCacheActivated() + { + $container = $this->createContainerFromFile('property_info'); + + $this->assertTrue($container->hasDefinition('property_info.cache')); + + $cache = $container->getDefinition('property_info.cache')->getArgument(1); + $this->assertEquals(new Reference('cache.property_info'), $cache); + } + + public function testPropertyInfoCacheDisabled() + { + $container = $this->createContainerFromFile('property_info', ['kernel.debug' => true, 'kernel.container_class' => __CLASS__]); + $this->assertFalse($container->hasDefinition('property_info.cache')); + } + public function testEventDispatcherService() { $container = $this->createContainer(['kernel.charset' => 'UTF-8', 'kernel.secret' => 'secret']);