diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
index b8f0864adc7a8..f49e337a39622 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
@@ -99,7 +99,6 @@
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 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
$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 @@ private function registerPropertyInfoConfiguration(ContainerBuilder $container,
$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 4fd8b70fac7aa..a5060e2cd6b16 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 4768cc98d46fe..cd78d7f95ea56 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/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
index 693c4de625dd4..25b7353523906 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
@@ -1357,6 +1357,22 @@ public function testPropertyInfoEnabled()
$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']);