8000 Fix review · symfony/symfony@3ccd799 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3ccd799

Browse files
committed
Fix review
1 parent 69f8127 commit 3ccd799

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

src/Symfony/Component/Serializer/Normalizer/ConstraintViolationListNormalizer.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,15 @@ public function __construct($defaultContext = [], NameConverterInterface $nameCo
4444
*/
4545
public function normalize($object, string $format = null, array $context = [])
4646
{
47-
$payloadFieldsToSerialize = $context[self::PAYLOAD_FIELDS] ?? $this->defaultContext[self::PAYLOAD_FIELDS] ?? null;
48-
if (\is_array($payloadFieldsToSerialize)) {
47+
if (array_key_exists(self::PAYLOAD_FIELDS, $context)) {
48+
$payloadFieldsToSerialize = $context[self::PAYLOAD_FIELDS];
49+
} elseif (array_key_exists(self::PAYLOAD_FIELDS, $this->defaultContext)) {
50+
$payloadFieldsToSerialize = $this->defaultContext[self::PAYLOAD_FIELDS];
51+
} else {
52+
$payloadFieldsToSerialize = [];
53+
}
54+
55+
if (\is_array($payloadFieldsToSerialize) && [] !== $payloadFieldsToSerialize) {
4956
$payloadFieldsToSerialize = array_flip($payloadFieldsToSerialize);
5057
}
5158

@@ -65,11 +72,11 @@ public function normalize($object, string $format = null, array $context = [])
6572

6673
$constraint = $violation->getConstraint();
6774
if (
68-
null !== $payloadFieldsToSerialize &&
75+
[] !== $payloadFieldsToSerialize &&
6976
$constraint &&
7077
$constraint->payload &&
7178
// If some or all payload fields are whitelisted, add them
72-
$payloadFields = [] === $payloadFieldsToSerialize || true === $payloadFieldsToSerialize ? $constraint->payload : array_intersect_key($constraint->payload, $payloadFieldsToSerialize)
79+
$payloadFields = null === $payloadFieldsToSerialize || true === $payloadFieldsToSerialize ? $constraint->payload : array_intersect_key($constraint->payload, $payloadFieldsToSerialize)
7380
) {
7481
$violationEntry['payload'] = $payloadFields;
7582
}

src/Symfony/Component/Serializer/Tests/Normalizer/ConstraintViolationListNormalizerTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public function testNormalizePayloadFields($fields, array $expected = null)
120120
]);
121121

122122
$violation = $this->normalizer->normalize($list, null, [ConstraintViolationListNormalizer::PAYLOAD_FIELDS => $fields])['violations'][0];
123-
if (null === $fields) {
123+
if ([] === $fields) {
124124
$this->assertArrayNotHasKey('payload', $violation);
125125

126126
return;
@@ -131,8 +131,8 @@ public function testNormalizePayloadFields($fields, array $expected = null)
131131
public function payloadFieldsProvider(): iterable
132132
{
133133
yield [['severity', 'anotherField1'], ['severity' => 'warning']];
134-
yield [[], ['severity' => 'warning', 'anotherField2' => 'aValue']];
134+
yield [null, ['severity' => 'warning', 'anotherField2' => 'aValue']];
135135
yield [true, ['severity' => 'warning', 'anotherField2' => 'aValue']];
136-
yield [null];
136+
yield [[]];
137137
}
138138
}

0 commit comments

Comments
 (0)
0