class 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 string reference to 'ListNormalizer'
serialization.services.yml in drupal/core/modules/serialization/serialization.services.yml
drupal/core/modules/serialization/serialization.services.yml
1 service uses ListNormalizer

File

drupal/core/modules/serialization/lib/Drupal/serialization/Normalizer/ListNormalizer.php, line 21
Contains \Drupal\serialization\Normalizer\ListNormalizer.

Namespace

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

  /**
   * The interface or class that this Normalizer supports.
   *
   * @var string
   */
  protected $supportedInterfaceOrClass = 'Drupal\\Core\\TypedData\\ListInterface';

  /**
   * Implements \Symfony\Component\Serializer\Normalizer\NormalizerInterface::normalize().
   */
  public function normalize($object, $format = NULL, array $context = array()) {
    $attributes = array();
    foreach ($object as $fieldItem) {
      $attributes[] = $this->serializer
        ->normalize($fieldItem, $format);
    }
    return $attributes;
  }

}

Members