FieldItemNormalizer
class FieldItemNormalizer extends NormalizerBase implements DenormalizerInterface (View source)
| internal | JSON:API maintains no PHP API since its API is the HTTP API. This class may change at any time and this will break any dependencies on it. |
Converts the Drupal field item object to a JSON:API array structure.
Traits
A trait providing methods for serialized columns.
Properties
| protected string | $supportedInterfaceOrClass | The interface or class that this Normalizer supports. |
|
| protected | $format | {@inheritdoc} | from NormalizerBase |
| protected EntityTypeManagerInterface | $entityTypeManager | The entity type manager. |
Methods
Implements \Symfony\Component\Serializer\Normalizer\DenormalizerInterface::supportsDenormalization()
Checks if the provided format is supported by this normalizer.
Rasterizes a value recursively.
Checks if there is a serialized string for a column.
Checks if the data contains string value for serialize column.
Gets the names of all serialized properties.
Gets the names of all properties the plugin treats as serialized data.
{@inheritdoc}
{@inheritdoc}
Gets a field item instance for use with SerializedColumnNormalizerTrait.
Details
supportsNormalization($data, $format = NULL)
{@inheritdoc}
supportsDenormalization($data, $type, $format = NULL)
Implements \Symfony\Component\Serializer\Normalizer\DenormalizerInterface::supportsDenormalization()
This class doesn't implement DenormalizerInterface, but most of its child classes do. Therefore, this method is implemented at this level to reduce code duplication.
protected bool
checkFormat(string $format = NULL)
Checks if the provided format is supported by this normalizer.
protected
addCacheableDependency(array $context, $data)
Adds cacheability if applicable.
static protected mixed
rasterizeValueRecursive(mixed $value)
Rasterizes a value recursively.
This is mainly for configuration entities where a field can be a tree of values to rasterize.
protected
checkForSerializedStrings(mixed $data, string $class, FieldItemInterface $field_item)
Checks if there is a serialized string for a column.
protected bool
dataHasStringForSerializeColumn(FieldItemInterface $field_item, array $data)
Checks if the data contains string value for serialize column.
protected string[]
getSerializedPropertyNames(FieldItemInterface $field_item)
Gets the names of all serialized properties.
protected string[]
getCustomSerializedPropertyNames(FieldItemInterface $field_item)
Gets the names of all properties the plugin treats as serialized data.
This allows the field storage definition or entity type to provide a setting for serialized properties. This can be used for fields that handle serialized data themselves and do not rely on the serialized schema flag.
__construct(EntityTypeManagerInterface $entity_type_manager)
FieldItemNormalizer constructor.
normalize($field_item, $format = NULL, array $context = [])
{@inheritdoc}
This normalizer leaves JSON:API normalizer land and enters the land of Drupal core's serialization system. That system was never designed with cacheability in mind, and hence bubbles cacheability out of band. This must catch it, and pass it to the value object that JSON:API uses.
denormalize($data, $class, $format = NULL, array $context = [])
{@inheritdoc}
protected
getFieldItemInstance(ResourceType $resource_type, FieldItemDataDefinitionInterface $item_definition)
Gets a field item instance for use with SerializedColumnNormalizerTrait.