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

Skip to content
Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 090ea0b

Browse files
committed
[FrameworkBundle] enable metadata cache when annotation is disabled
1 parent 67b9ac9 commit 090ea0b

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