Skip to content

Commit 989b337

Browse files
Merge branch '5.4' into 6.0
* 5.4: [DependencyInjection] Add `SubscribedService` attribute, deprecate current `ServiceSubscriberTrait` usage Use try/finally to restore error handlers Allow serializer default context configuration
2 parents dd321b8 + aa5d3d0 commit 989b337

File tree

8 files changed

+21
-1
lines changed

8 files changed

+21
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ CHANGELOG
3737
* Add support for resetting container services after each messenger message
3838
* Add `configureContainer()`, `configureRoutes()`, `getConfigDir()` and `getBundlesPath()` to `MicroKernelTrait`
3939
* Add support for configuring log level, and status code by exception class
40+
* Bind the `default_context` parameter onto serializer's encoders and normalizers
4041

4142
5.3
4243
---

DependencyInjection/Configuration.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -977,6 +977,12 @@ private function addSerializerSection(ArrayNodeDefinition $rootNode, callable $e
977977
->end()
978978
->end()
979979
->end()
980+
->arrayNode('default_context')
981+
->normalizeKeys(false)
982+
->useAttributeAsKey('name')
983+
->defaultValue([])
984+
->prototype('variable')->end()
985+
->end()
980986
->end()
981987
->end()
982988
->end()

DependencyInjection/FrameworkExtension.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1756,6 +1756,10 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
17561756
$defaultContext += ['max_depth_handler' => new Reference($config['max_depth_handler'])];
17571757
$container->getDefinition('serializer.normalizer.object')->replaceArgument(6, $defaultContext);
17581758
}
1759+
1760+
if (isset($config['default_context']) && $config['default_context']) {
1761+
$container->setParameter('serializer.default_context', $config['default_context']);
1762+
}
17591763
}
17601764

17611765
private function registerPropertyInfoConfiguration(ContainerBuilder $container, PhpFileLoader $loader)

Resources/config/schema/symfony-1.0.xsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@
265265
<xsd:complexType name="serializer">
266266
<xsd:choice minOccurs="0" maxOccurs="unbounded">
267267
<xsd:element name="mapping" type="file_mapping" />
268+
<xsd:element name="default-context" type="metadata" minOccurs="0" maxOccurs="1" />
268269
</xsd:choice>
269270
<xsd:attribute name="enabled" type="xsd:boolean" />
270271
<xsd:attribute name="enable-annotations" type="xsd:boolean" />

Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,7 @@ protected static function getBundleDefaultConfig()
443443
'enabled' => true,
444444
],
445445
'serializer' => [
446+
'default_context' => [],
446447
'enabled' => !class_exists(FullStack::class),
447448
'enable_annotations' => !class_exists(FullStack::class),
448449
'mapping' => ['paths' => []],

Tests/DependencyInjection/Fixtures/php/full.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
'name_converter' => 'serializer.name_converter.camel_case_to_snake_case',
6767
'circular_reference_handler' => 'my.circular.reference.handler',
6868
'max_depth_handler' => 'my.max.depth.handler',
69+
'default_context' => ['enable_max_depth' => true],
6970
],
7071
'property_info' => true,
7172
'ide' => 'file%%link%%format',

Tests/DependencyInjection/Fixtures/xml/full.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@
3333
</framework:translator>
3434
<framework:validation enabled="true" />
3535
<framework:annotations cache="file" debug="true" file-cache-dir="%kernel.cache_dir%/annotations" />
36-
<framework:serializer enabled="true" enable-annotations="true" name-converter="serializer.name_converter.camel_case_to_snake_case" circular-reference-handler="my.circular.reference.handler" max-depth-handler="my.max.depth.handler" />
36+
<framework:serializer enabled="true" enable-annotations="true" name-converter="serializer.name_converter.camel_case_to_snake_case" circular-reference-handler="my.circular.reference.handler" max-depth-handler="my.max.depth.handler">
37+
<framework:default-context>
38+
<framework:enable_max_depth>true</framework:enable_max_depth>
39+
</framework:default-context>
40+
</framework:serializer>
3741
<framework:property-info />
3842
</framework:config>
3943
</container>

Tests/DependencyInjection/Fixtures/yml/full.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ framework:
5454
name_converter: serializer.name_converter.camel_case_to_snake_case
5555
circular_reference_handler: my.circular.reference.handler
5656
max_depth_handler: my.max.depth.handler
57+
default_context:
58+
enable_max_depth: true
5759
property_info: ~
5860
ide: file%%link%%format
5961
request:

0 commit comments

Comments
 (0)