Skip to content

Navigation Menu

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 d863692

Browse filesBrowse files
committed
[FrameworkBundle] Fix passing serializer.default_context option to normalizers
1 parent fd81357 commit d863692
Copy full SHA for d863692

File tree

3 files changed

+82
-3
lines changed
Filter options

3 files changed

+82
-3
lines changed

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.php
+2-3Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@
7878

7979
// Normalizer
8080
->set('serializer.normalizer.constraint_violation_list', ConstraintViolationListNormalizer::class)
81-
->args([[], service('serializer.name_converter.metadata_aware')])
81+
->args([1 => service('serializer.name_converter.metadata_aware')])
82+
->autowire(true)
8283
->tag('serializer.normalizer', ['priority' => -915])
8384

8485
->set('serializer.normalizer.mime_message', MimeMessageNormalizer::class)
@@ -124,7 +125,6 @@
124125
service('property_info')->ignoreOnInvalid(),
125126
service('serializer.mapping.class_discriminator_resolver')->ignoreOnInvalid(),
126127
null,
127-
[],
128128
])
129129
->tag('serializer.normalizer', ['priority' => -1000])
130130

@@ -137,7 +137,6 @@
137137
service('property_info')->ignoreOnInvalid(),
138138
service('serializer.mapping.class_discriminator_resolver')->ignoreOnInvalid(),
139139
null,
140-
[],
141140
])
142141

143142
->alias(PropertyNormalizer::class, 'serializer.normalizer.property')

‎src/Symfony/Bundle/FrameworkBundle/Tests/Functional/SerializerTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Tests/Functional/SerializerTest.php
+35Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,41 @@ public function testDeserializeArrayOfObject()
3232

3333
$this->assertEquals($expected, $result);
3434
}
35+
36+
/**
37+
* @dataProvider provideNormalizersAndEncodersWithDefaultContextOption
38+
*/
39+
public function testNormalizersAndEncodersUseDefaultContextConfigOption(string $normalizerId)
40+
{
41+
static::bootKernel(['test_case' => 'Serializer']);
42+
43+
$normalizer = static::getContainer()->get($normalizerId);
44+
45+
$reflectionObject = new \ReflectionObject($normalizer);
46+
$property = $reflectionObject->getProperty('defaultContext');
47+
$property->setAccessible(true);
48+
49+
$defaultContext = $property->getValue($normalizer);
50+
51+
self::assertArrayHasKey('fake_context_option', $defaultContext);
52+
self::assertEquals('foo', $defaultContext['fake_context_option']);
53+
}
54+
55+
public function provideNormalizersAndEncodersWithDefaultContextOption(): array
56+
{
57+
return [
58+
['serializer.normalizer.constraint_violation_list.alias'],
59+
['serializer.normalizer.dateinterval.alias'],
60+
['serializer.normalizer.datetime.alias'],
61+
['serializer.normalizer.json_serializable.alias'],
62+
['serializer.normalizer.problem.alias'],
63+
['serializer.normalizer.uid.alias'],
64+
['serializer.normalizer.object.alias'],
65+
['serializer.encoder.xml.alias'],
66+
['serializer.encoder.yaml.alias'],
67+
['serializer.encoder.csv.alias'],
68+
];
69+
}
3570
}
3671

3772
class Foo

‎src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/Serializer/config.yml

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/Serializer/config.yml
+45Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,54 @@ framework:
66
enabled: true
77
default_context:
88
enable_max_depth: true
9+
fake_context_option: foo
910
property_info: { enabled: true }
1011

1112
services:
1213
serializer.alias:
1314
alias: serializer
1415
public: true
16+
17+
serializer.normalizer.constraint_violation_list.alias:
18+
alias: serializer.normalizer.constraint_violation_list
19+
public: true
20+
21+
serializer.normalizer.dateinterval.alias:
22+
alias: serializer.normalizer.dateinterval
23+
public: true
24+
25+
serializer.normalizer.datetime.alias:
26+
alias: serializer.normalizer.datetime
27+
public: true
28+
29+
serializer.normalizer.json_serializable.alias:
30+
alias: serializer.normalizer.json_serializable
31+
public: true
32+
33+
serializer.normalizer.problem.alias:
34+
alias: serializer.normalizer.problem
35+
public: true
36+
37+
serializer.normalizer.uid.alias:
38+
alias: serializer.normalizer.uid
39+
public: true
40+
41+
serializer.normalizer.property.alias:
42+
alias: serializer.normalizer.property
43+
public: true
44+
45+
serializer.normalizer.object.alias:
46+
alias: serializer.normalizer.object
47+
public: true
48+
49+
serializer.encoder.xml.alias:
50+
alias: serializer.encoder.xml
51+
public: true
52+
53+
serializer.encoder.yaml.alias:
54+
alias: serializer.encoder.yaml
55+
public: true
56+
57+
serializer.encoder.csv.alias:
58+
alias: serializer.encoder.csv
59+
public: true

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.