Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. MetadataAwareNameConverter.php

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\NameConverter

Code

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;
}
RSS feed
Powered by Drupal