8000 [FrameworkBundle] enable metadata cache when annotation is disabled · symfony/symfony@1773dff · GitHub
[go: up one dir, main page]

Skip to content

Commit 1773dff

Browse files
bastnicnicolas-grekas
authored andcommitted
[FrameworkBundle] enable metadata cache when annotation is disabled
1 parent 618f920 commit 1773dff

File tree

5 files changed

+49
-5
lines changed

5 files changed

+49
-5
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1777,9 +1777,6 @@ private function registerSecurityCsrfConfiguration(array $config, ContainerBuild
17771777
private function registerSerializerConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader)
17781778
{
17791779
$loader->load('serializer.php');
1780-
if ($container->getParameter('kernel.debug')) {
1781-
$container->removeDefinition('serializer.mapping.cache_class_metadata_factory');
1782-
}
17831780

17841781
$chainLoader = $container->getDefinition('serializer.mapping.chain_loader');
17851782

@@ -1805,6 +1802,9 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
18051802
if (\PHP_VERSION_ID < 80000 && !$this->annotationsConfigEnabled) {
18061803
throw new \LogicException('"enable_annotations" on the serializer cannot be set as the PHP version is lower than 8 and Annotations support is disabled. Consider upgrading PHP.');
18071804
}
1805+
if ($container->getParameter('kernel.debug')) {
1806+
$container->removeDefinition('serializer.mapping.cache_class_metadata_factory');
1807+
}
18081808

18091809
$annotationLoader = new Definition(
18101810
'Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', [
4+
'serializer' => [
5+
'enable_annotations' => false,
6+
'mapping' => [
7+
'paths' => [
8+
'%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/files',
9+
'%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/serialization.yml',
10+
'%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/serialization.yaml',
11+
],
12+
],
13+
],
14+
]);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" ?>
2+
3+
<container xmlns="http://symfony.com/schema/dic/services"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xmlns:framework="http://symfony.com/schema/dic/symfony">
6+
7+
<framework:config>
8+
<framework:serializer enable-annotations="false">
9+
<framework:mapping>
10+
<framework:path>%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/files</framework:path>
11+
<framework:path>%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/serialization.yml</framework:path>
12+
<framework:path>%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/serialization.yaml</framework:path>
13+
</framework:mapping>
14+
</framework:serializer>
15+
</framework:config>
16+
</container>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
framework:
2+
serializer:
3+
enable_annotations: false
4+
mapping:
5+
paths:
6+
- "%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/files"
7+
- "%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/serialization.yml"
8+
- "%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/serialization.yaml"

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1529,9 +1529,15 @@ public function testSerializerCacheActivated()
15291529
$this->assertEquals(new Reference('serializer.mapping.cache.symfony'), $cache);
15301530
}
15311531

1532-
public function testSerializerCacheNotActivatedDebug()
1532+
public function testSerializerCacheUsedWithoutAnnotationsAndMappingFiles()
15331533
{
1534-
$container = $this->createContainerFromFile('serializer_enabled', ['kernel.debug' => true, 'kernel.container_class' => __CLASS__]);
1534+
$container = $this->createContainerFromFile('serializer_mapping_without_annotations', ['kernel.debug' => true, 'kernel.container_class' => __CLASS__]);
1535+
$this->assertTrue($container->hasDefinition('serializer.mapping.cache_class_metadata_factory'));
1536+
}
1537+
1538+
public function testSerializerCacheNotActivatedWithAnnotations()
1539+
{
1540+
$container = $this->createContainerFromFile('serializer_mapping', ['kernel.debug' => true, 'kernel.container_class' => __CLASS__]);
15351541
$this->assertFalse($container->hasDefinition('serializer.mapping.cache_class_metadata_factory'));
15361542
}
15371543

0 commit comments

Comments
 (0)
0