function MetadataAwareNameConverter::getCacheValueForAttributesMetadata
Return value
array<string, string>
1 call to MetadataAwareNameConverter::getCacheValueForAttributesMetadata()
- MetadataAwareNameConverter::getCacheValueForDenormalization in vendor/
symfony/ serializer/ NameConverter/ MetadataAwareNameConverter.php
File
-
vendor/
symfony/ serializer/ NameConverter/ MetadataAwareNameConverter.php, line 112
Class
- MetadataAwareNameConverter
- @author Fabien Bourigault <bourigaultfabien@gmail.com>
Namespace
Symfony\Component\Serializer\NameConverterCode
private function getCacheValueForAttributesMetadata(string $class, array $context) : array {
if (!$this->metadataFactory
->hasMetadataFor($class)) {
return [];
}
$classMetadata = $this->metadataFactory
->getMetadataFor($class);
$cache = [];
foreach ($classMetadata->getAttributesMetadata() as $name => $metadata) {
if (null === $metadata->getSerializedName()) {
continue;
}
if (null !== $metadata->getSerializedName() && null !== $metadata->getSerializedPath()) {
throw new LogicException(\sprintf('Found SerializedName and SerializedPath attributes on property "%s" of class "%s".', $name, $class));
}
$metadataGroups = $metadata->getGroups();
$contextGroups = (array) ($context[AbstractNormalizer::GROUPS] ?? []);
if ($contextGroups && !$metadataGroups) {
continue;
}
if ($metadataGroups && !array_intersect($metadataGroups, $contextGroups) && !\in_array('*', $contextGroups, true)) {
continue;
}
$cache[$metadata->getSerializedName()] = $name;
}
return $cache;
}