You are here

class ListNormalizer in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/serialization/src/Normalizer/ListNormalizer.php \Drupal\serialization\Normalizer\ListNormalizer

Converts list objects to arrays.

Ordinarily, this would be handled automatically by Serializer, but since there is a TypedDataNormalizer and the Field class extends TypedData, any Field will be handled by that Normalizer instead of being traversed. This class ensures that TypedData classes that also implement ListInterface are traversed instead of simply returning getValue().

Hierarchy

Expanded class hierarchy of ListNormalizer

1 file declares its use of ListNormalizer
ListNormalizerTest.php in core/modules/serialization/tests/src/Unit/Normalizer/ListNormalizerTest.php
1 string reference to 'ListNormalizer'
serialization.services.yml in core/modules/serialization/serialization.services.yml
core/modules/serialization/serialization.services.yml
1 service uses ListNormalizer
serializer.normalizer.list in core/modules/serialization/serialization.services.yml
Drupal\serialization\Normalizer\ListNormalizer

File

core/modules/serialization/src/Normalizer/ListNormalizer.php, line 16

Namespace

Drupal\serialization\Normalizer
View source
class ListNormalizer extends NormalizerBase {

  /**
   * {@inheritdoc}
   */
  protected $supportedInterfaceOrClass = ListInterface::class;

  /**
   * {@inheritdoc}
   */
  public function normalize($object, $format = NULL, array $context = []) {
    $attributes = [];
    foreach ($object as $fieldItem) {
      $attributes[] = $this->serializer
        ->normalize($fieldItem, $format, $context);
    }
    return $attributes;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
CacheableNormalizerInterface::SERIALIZATION_CONTEXT_CACHEABILITY constant Name of key for bubbling cacheability metadata via serialization context.
ListNormalizer::$supportedInterfaceOrClass protected property The interface or class that this Normalizer supports. Overrides NormalizerBase::$supportedInterfaceOrClass 1
ListNormalizer::normalize public function 1
NormalizerBase::$format protected property List of formats which supports (de-)normalization. 3
NormalizerBase::addCacheableDependency protected function Adds cacheability if applicable.
NormalizerBase::checkFormat protected function Checks if the provided format is supported by this normalizer. 1
NormalizerBase::supportsDenormalization public function Implements \Symfony\Component\Serializer\Normalizer\DenormalizerInterface::supportsDenormalization() 1
NormalizerBase::supportsNormalization public function 1