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

Breadcrumb

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

function AbstractNormalizer::isCircularReference

Detects if the configured circular reference limit is reached.

Throws

CircularReferenceException

2 calls to AbstractNormalizer::isCircularReference()
AbstractObjectNormalizer::normalize in vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php
Normalizes data into a set of arrays/scalars.
JsonSerializableNormalizer::normalize in vendor/symfony/serializer/Normalizer/JsonSerializableNormalizer.php
Normalizes data into a set of arrays/scalars.

File

vendor/symfony/serializer/Normalizer/AbstractNormalizer.php, line 165

Class

AbstractNormalizer
Normalizer implementation.

Namespace

Symfony\Component\Serializer\Normalizer

Code

protected function isCircularReference(object $object, array &$context) : bool {
    $objectHash = spl_object_hash($object);
    $circularReferenceLimit = $context[self::CIRCULAR_REFERENCE_LIMIT] ?? $this->defaultContext[self::CIRCULAR_REFERENCE_LIMIT];
    if (isset($context[self::CIRCULAR_REFERENCE_LIMIT_COUNTERS][$objectHash])) {
        if ($context[self::CIRCULAR_REFERENCE_LIMIT_COUNTERS][$objectHash] >= $circularReferenceLimit) {
            unset($context[self::CIRCULAR_REFERENCE_LIMIT_COUNTERS][$objectHash]);
            return true;
        }
        ++$context[self::CIRCULAR_REFERENCE_LIMIT_COUNTERS][$objectHash];
    }
    else {
        $context[self::CIRCULAR_REFERENCE_LIMIT_COUNTERS][$objectHash] = 1;
    }
    return false;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal