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

Skip to content

Commit f1bf23d

Browse files
committed
[FrameworkBundle] enable metadata cache when annotation is disabled
1 parent 618f920 commit f1bf23d

File tree

5 files changed

+55
-4
lines changed

5 files changed

+55
-4
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,15 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', [
4+
// 'annotations' => ['enabled' => true],
5+
'serializer' => [
6+
'enable_annotations' => false,
7+
'mapping' => [
8+
'paths' => [
9+
'%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/files',
10+
'%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/serialization.yml',
11+
'%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/serialization.yaml',
12+
],
13+
],
14+
],
15+
]);
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: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1529,9 +1529,21 @@ public function testSerializerCacheActivated()
15291529
$this->assertEquals(new Reference('serializer.mapping.cache.symfony'), $cache);
15301530
}
15311531

1532-
public function testSerializerCacheNotActivatedDebug()
1532+
public function testSerializerCacheUsedWithoutAnnotations()
15331533
{
15341534
$container = $this->createContainerFromFile('serializer_enabled', ['kernel.debug' => true, 'kernel.container_class' => __CLASS__]);
1535+
$this->assertTrue($container->hasDefinition('serializer.mapping.cache_class_metadata_factory'));
1536+
}
1537+
1538+
public function testSerializerCacheUsedWithoutAnnotationsAndMappingFiles()
1539+
{
1540+
$container = $this->createContainerFromFile('serializer_mapping_without_annotations', ['kernel.debug' => true, 'kernel.container_class' => __CLASS__]);
1541+
$this->assertTrue($container->hasDefinition('serializer.mapping.cache_class_metadata_factory'));
1542+
}
1543+
1544+
public function testSerializerCacheNotActivatedWithAnnotations()
1545+
{
1546+
$container = $this->createContainerFromFile('serializer_mapping', ['kernel.debug' => true, 'kernel.container_class' => __CLASS__]);
15351547
$this->assertFalse($container->hasDefinition('serializer.mapping.cache_class_metadata_factory'));
15361548
}
15371549

0 commit comments

Comments
 (0)
0