Skip to content

Commit 5a11f62

Browse files
mcop1herbertrothfashxp
authored
[Task] Add $context parameter and getSupportedTypes methods (#324)
* License Switch to POCL (#322) (#323) * License Switch to POCL Co-authored-by: Christian Fasching <[email protected]> * Compatability with symfony 7 * Compatability with symfony 7 * Apply php-cs-fixer changes * Added final/internal for normalizer/denormalizer --------- Co-authored-by: Herbert Roth <[email protected]> Co-authored-by: Christian Fasching <[email protected]> Co-authored-by: mcop1 <[email protected]>
1 parent 3f87fa6 commit 5a11f62

7 files changed

+92
-15
lines changed

src/Service/Serializer/Denormalizer/Search/AssetSearchResultDenormalizer.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@
2222
use Pimcore\Bundle\GenericDataIndexBundle\Service\Serializer\AssetTypeSerializationHandlerService;
2323
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
2424

25-
readonly class AssetSearchResultDenormalizer implements DenormalizerInterface
25+
/**
26+
* @internal
27+
*/
28+
final readonly class AssetSearchResultDenormalizer implements DenormalizerInterface
2629
{
2730
public function __construct(
2831
private AssetTypeSerializationHandlerService $assetTypeSerializationHandlerService
@@ -76,11 +79,22 @@ public function denormalize(
7679

7780
}
7881

79-
public function supportsDenormalization(mixed $data, string $type, ?string $format = null): bool
80-
{
82+
public function supportsDenormalization(
83+
mixed $data,
84+
string $type,
85+
?string $format = null,
86+
array $context = []
87+
): bool {
8188
return is_array($data) && is_subclass_of($type, AssetSearchResultItem::class);
8289
}
8390

91+
public function getSupportedTypes(?string $format): array
92+
{
93+
return [
94+
'*' => false,
95+
];
96+
}
97+
8498
/**
8599
* @return AssetMetaData[]
86100
*/

src/Service/Serializer/Denormalizer/Search/DataObjectSearchResultDenormalizer.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@
2121
use Pimcore\Bundle\GenericDataIndexBundle\Service\Serializer\DataObjectTypeSerializationHandlerService;
2222
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
2323

24-
readonly class DataObjectSearchResultDenormalizer implements DenormalizerInterface
24+
/**
25+
* @internal
26+
*/
27+
final readonly class DataObjectSearchResultDenormalizer implements DenormalizerInterface
2528
{
2629
public function __construct(
2730
private DataObjectTypeSerializationHandlerService $typeHandlerService
@@ -89,11 +92,22 @@ public function denormalize(
8992

9093
}
9194

92-
public function supportsDenormalization(mixed $data, string $type, ?string $format = null): bool
93-
{
95+
public function supportsDenormalization(
96+
mixed $data,
97+
string $type,
98+
?string $format = null,
99+
array $context = []
100+
): bool {
94101
return is_array($data) && is_subclass_of($type, DataObjectSearchResultItem::class);
95102
}
96103

104+
public function getSupportedTypes(?string $format): array
105+
{
106+
return [
107+
'*' => false,
108+
];
109+
}
110+
97111
private function hydrateInheritedData(array $inheritedData): array
98112
{
99113
$result = [];

src/Service/Serializer/Denormalizer/Search/DocumentSearchResultDenormalizer.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@
1919
use Pimcore\Bundle\GenericDataIndexBundle\Service\Serializer\DocumentTypeSerializationHandlerService;
2020
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
2121

22-
readonly class DocumentSearchResultDenormalizer implements DenormalizerInterface
22+
/**
23+
* @internal
24+
*/
25+
final readonly class DocumentSearchResultDenormalizer implements DenormalizerInterface
2326
{
2427
public function __construct(
2528
private DocumentTypeSerializationHandlerService $documentTypeSerializationHandlerService
@@ -70,8 +73,19 @@ public function denormalize(
7073
->setHasWorkflowWithPermissions(SystemField::HAS_WORKFLOW_WITH_PERMISSIONS->getData($data));
7174
}
7275

73-
public function supportsDenormalization(mixed $data, string $type, ?string $format = null): bool
74-
{
76+
public function supportsDenormalization(
77+
mixed $data,
78+
string $type,
79+
?string $format = null,
80+
array $context = []
81+
): bool {
7582
return is_array($data) && is_subclass_of($type, DocumentSearchResultItem::class);
7683
}
84+
85+
public function getSupportedTypes(?string $format): array
86+
{
87+
return [
88+
'*' => false,
89+
];
90+
}
7791
}

src/Service/Serializer/Denormalizer/SearchIndexAdapter/SearchResultDenormalizer.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@
1919
use Pimcore\Bundle\GenericDataIndexBundle\Model\SearchIndexAdapter\SearchResultHit;
2020
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
2121

22-
class SearchResultDenormalizer implements DenormalizerInterface
22+
/**
23+
* @internal
24+
*/
25+
final class SearchResultDenormalizer implements DenormalizerInterface
2326
{
2427
/**
2528
* @param array $data
@@ -38,11 +41,22 @@ public function denormalize(mixed $data, string $type, ?string $format = null, a
3841
);
3942
}
4043

41-
public function supportsDenormalization(mixed $data, string $type, ?string $format = null): bool
42-
{
44+
public function supportsDenormalization(
45+
mixed $data,
46+
string $type,
47+
?string $format = null,
48+
array $context = []
49+
): bool {
4350
return is_array($data) && is_subclass_of($type, SearchResult::class);
4451
}
4552

53+
public function getSupportedTypes(?string $format): array
54+
{
55+
return [
56+
'*' => false,
57+
];
58+
}
59+
4660
/**
4761
* @return SearchResultHit[]
4862
*/

src/Service/Serializer/Normalizer/AssetNormalizer.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,18 @@ public function normalize(mixed $object, ?string $format = null, array $context
6060
return [];
6161
}
6262

63-
public function supportsNormalization(mixed $data, ?string $format = null): bool
63+
public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool
6464
{
6565
return $data instanceof Asset;
6666
}
6767

68+
public function getSupportedTypes(?string $format): array
69+
{
70+
return [
71+
'*' => false,
72+
];
73+
}
74+
6875
private function normalizeFolder(Asset\Folder $folder, bool $skipLazyLoadedFields): array
6976
{
7077
return [

src/Service/Serializer/Normalizer/DataObjectNormalizer.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,18 @@ public function normalize(mixed $object, ?string $format = null, array $context
6666
return [];
6767
}
6868

69-
public function supportsNormalization(mixed $data, ?string $format = null): bool
69+
public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool
7070
{
7171
return $data instanceof AbstractObject;
7272
}
7373

74+
public function getSupportedTypes(?string $format): array
75+
{
76+
return [
77+
'*' => false,
78+
];
79+
}
80+
7481
private function normalizeFolder(Folder $folder, bool $skipLazyLoadedFields): array
7582
{
7683
return [

src/Service/Serializer/Normalizer/DocumentNormalizer.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,18 @@ public function normalize(mixed $object, ?string $format = null, array $context
5656
return [];
5757
}
5858

59-
public function supportsNormalization(mixed $data, ?string $format = null): bool
59+
public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool
6060
{
6161
return $data instanceof Document;
6262
}
6363

64+
public function getSupportedTypes(?string $format): array
65+
{
66+
return [
67+
'*' => false,
68+
];
69+
}
70+
6471
private function normalizeFolder(Document\Folder $folder, bool $skipLazyLoadedFields): array
6572
{
6673
return [

0 commit comments

Comments
 (0)