Skip to content

Commit 32e14c7

Browse files
committed
[Serializer] Refactor sanitizer context keys to use SANITIZE_HTML flag and update usage across denormalizer and tests
1 parent 61f49fa commit 32e14c7

File tree

7 files changed

+12
-11
lines changed

7 files changed

+12
-11
lines changed

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ final class SanitizeDenormalizer implements DenormalizerInterface, DenormalizerA
2626
{
2727
use DenormalizerAwareTrait;
2828

29-
public const SANITIZER_KEY = 'sanitizer';
29+
public const SANITIZER = 'sanitizer';
30+
public const SANITIZE_HTML = 'sanitize_html';
3031
public const DEFAULT_SANITIZER = 'default';
3132

3233
public function __construct(
@@ -60,10 +61,10 @@ public function denormalize(mixed $data, string $type, ?string $format = null, a
6061

6162
foreach ($property->getAttributes(Context::class) as $attribute) {
6263
$attributeContext = $attribute->newInstance();
63-
if (!isset($attributeContext->denormalizationContext[self::SANITIZER_KEY])) {
64+
if (($attributeContext->denormalizationContext[self::SANITIZE_HTML] ?? false) !== true) {
6465
continue;
6566
}
66-
$sanitizer = $this->getSanitizer($attributeContext->denormalizationContext[self::SANITIZER_KEY]);
67+
$sanitizer = $this->getSanitizer($attributeContext->denormalizationContext[self::SANITIZER] ?? self::DEFAULT_SANITIZER);
6768
$sanitizedData[$name] = $this->sanitizeValue($data[$name], $sanitizer, $name);
6869
$context['sanitized'] = true;
6970
}
@@ -89,8 +90,8 @@ public function supportsDenormalization(mixed $data, string $type, ?string $form
8990
$reflection = new \ReflectionClass($type);
9091
foreach ($reflection->getProperties() as $property) {
9192
foreach ($property->getAttributes(Context::class) as $attribute) {
92-
$attrContext = $attribute->newInstance();
93-
if (isset($attrContext->denormalizationContext[self::SANITIZER_KEY])) {
93+
$attributeContext = $attribute->newInstance();
94+
if (($attributeContext->denormalizationContext[self::SANITIZE_HTML] ?? false) === true) {
9495
return true;
9596
}
9697
}

src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/SanitizeDummy.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public function __construct(
2424
public string $firstName,
2525
public string $lastName,
2626
#[Context(
27-
denormalizationContext: [ SanitizeDenormalizer::SANITIZER_KEY => SanitizeDenormalizer::DEFAULT_SANITIZER ]
27+
denormalizationContext: [ SanitizeDenormalizer::SANITIZE_HTML => true ],
2828
)]
2929
public string $bio
3030
) {}

src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/SanitizeDummyWithArrayOfString.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class SanitizeDummyWithArrayOfString
2222
public function __construct(
2323
public string $id,
2424
/** @var string[] */
25-
#[Context(denormalizationContext: [SanitizeDenormalizer::SANITIZER_KEY => SanitizeDenormalizer::DEFAULT_SANITIZER])]
25+
#[Context(denormalizationContext: [ SanitizeDenormalizer::SANITIZE_HTML => true ])]
2626
public array $strings,
2727
) {}
2828
}

src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/SanitizeDummyWithCustomSanitizer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
class SanitizeDummyWithCustomSanitizer
2121
{
2222
public function __construct(
23-
#[Context(denormalizationContext: [SanitizeDenormalizer::SANITIZER_KEY => 'custom'])]
23+
#[Context(denormalizationContext: [ SanitizeDenormalizer::SANITIZE_HTML => true, SanitizeDenormalizer::SANITIZER => 'custom' ])]
2424
public string $foo
2525
) {}
2626
}

src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/SanitizeDummyWithInvalidArray.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public function __construct(
2323
/**
2424
* @var int[]
2525
*/
26-
#[Context(denormalizationContext: [SanitizeDenormalizer::SANITIZER_KEY => SanitizeDenormalizer::DEFAULT_SANITIZER])]
26+
#[Context(denormalizationContext: [ SanitizeDenormalizer::SANITIZE_HTML => true ])]
2727
public array $foo
2828
) {}
2929
}

src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/SanitizeDummyWithInvalidType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
class SanitizeDummyWithInvalidType
2121
{
2222
public function __construct(
23-
#[Context(denormalizationContext: [SanitizeDenormalizer::SANITIZER_KEY => SanitizeDenormalizer::DEFAULT_SANITIZER])]
23+
#[Context(denormalizationContext: [ SanitizeDenormalizer::SANITIZE_HTML => true ])]
2424
public int $foo
2525
) {}
2626
}

src/Symfony/Component/Serializer/Tests/Fixtures/Attributes/SanitizeDummyWithUnknownSanitizer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
class SanitizeDummyWithUnknownSanitizer
1818
{
1919
public function __construct(
20-
#[Context(denormalizationContext: [SanitizeDenormalizer::SANITIZER_KEY => 'unknown'])]
20+
#[Context(denormalizationContext: [ SanitizeDenormalizer::SANITIZE_HTML => true, SanitizeDenormalizer::SANITIZER => 'unknown' ])]
2121
public string $foo
2222
) {}
2323
}

0 commit comments

Comments
 (0)