ListNormalizer.php
Same filename in other branches
Namespace
Drupal\serialization\NormalizerFile
-
core/
modules/ serialization/ src/ Normalizer/ ListNormalizer.php
View source
<?php
namespace Drupal\serialization\Normalizer;
use Drupal\Core\TypedData\ListInterface;
/**
* 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().
*/
class ListNormalizer extends NormalizerBase {
/**
* {@inheritdoc}
*/
public function normalize($object, $format = NULL, array $context = []) : array|string|int|float|bool|\ArrayObject|null {
$attributes = [];
foreach ($object as $fieldItem) {
$attributes[] = $this->serializer
->normalize($fieldItem, $format, $context);
}
return $attributes;
}
/**
* {@inheritdoc}
*/
public function getSupportedTypes(?string $format) : array {
return [
ListInterface::class => TRUE,
];
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
ListNormalizer | Converts list objects to arrays. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.