public function ComplexDataNormalizer::normalize in Drupal 9
Same name and namespace in other branches
- 8 core/modules/serialization/src/Normalizer/ComplexDataNormalizer.php \Drupal\serialization\Normalizer\ComplexDataNormalizer::normalize()
 
5 calls to ComplexDataNormalizer::normalize()
- BooleanItemNormalizer::normalize in core/
modules/ serialization/ tests/ modules/ test_fieldtype_boolean_emoji_normalizer/ src/ Normalizer/ BooleanItemNormalizer.php  - EntityReferenceFieldItemNormalizer::normalize in core/
modules/ serialization/ src/ Normalizer/ EntityReferenceFieldItemNormalizer.php  - StringNormalizer::normalize in core/
modules/ jsonapi/ tests/ modules/ jsonapi_test_field_type/ src/ Normalizer/ StringNormalizer.php  - TextItemSillyNormalizer::normalize in core/
modules/ serialization/ tests/ modules/ field_normalization_test/ src/ Normalization/ TextItemSillyNormalizer.php  - TimestampItemNormalizer::normalize in core/
modules/ serialization/ src/ Normalizer/ TimestampItemNormalizer.php  
7 methods override ComplexDataNormalizer::normalize()
- BooleanItemNormalizer::normalize in core/
modules/ serialization/ tests/ modules/ test_fieldtype_boolean_emoji_normalizer/ src/ Normalizer/ BooleanItemNormalizer.php  - ConfigEntityNormalizer::normalize in core/
modules/ serialization/ src/ Normalizer/ ConfigEntityNormalizer.php  - ContentEntityNormalizer::normalize in core/
modules/ serialization/ src/ Normalizer/ ContentEntityNormalizer.php  - EntityReferenceFieldItemNormalizer::normalize in core/
modules/ serialization/ src/ Normalizer/ EntityReferenceFieldItemNormalizer.php  - StringNormalizer::normalize in core/
modules/ jsonapi/ tests/ modules/ jsonapi_test_field_type/ src/ Normalizer/ StringNormalizer.php  
File
- core/
modules/ serialization/ src/ Normalizer/ ComplexDataNormalizer.php, line 28  
Class
- ComplexDataNormalizer
 - Converts the Drupal entity object structures to a normalized array.
 
Namespace
Drupal\serialization\NormalizerCode
public function normalize($object, $format = NULL, array $context = []) {
  $attributes = [];
  // $object will not always match $supportedInterfaceOrClass.
  // @see \Drupal\serialization\Normalizer\EntityNormalizer
  // Other normalizers that extend this class may only provide $object that
  // implements \Traversable.
  if ($object instanceof ComplexDataInterface) {
    // If there are no properties to normalize, just normalize the value.
    $object = !empty($object
      ->getProperties(TRUE)) ? TypedDataInternalPropertiesHelper::getNonInternalProperties($object) : $object
      ->getValue();
  }
  /** @var \Drupal\Core\TypedData\TypedDataInterface $property */
  foreach ($object as $name => $property) {
    $attributes[$name] = $this->serializer
      ->normalize($property, $format, $context);
  }
  return $attributes;
}