.../serialization/src/Normalizer/DateTimeIso8601Normalizer.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/modules/serialization/src/Normalizer/DateTimeIso8601Normalizer.php b/core/modules/serialization/src/Normalizer/DateTimeIso8601Normalizer.php index 30bcde3514..44e2751d67 100644 --- a/core/modules/serialization/src/Normalizer/DateTimeIso8601Normalizer.php +++ b/core/modules/serialization/src/Normalizer/DateTimeIso8601Normalizer.php @@ -37,6 +37,7 @@ class DateTimeIso8601Normalizer extends DateTimeNormalizer { * {@inheritdoc} */ public function normalize($datetime, $format = NULL, array $context = []) { + assert($datetime instanceof DateTimeIso8601); $field_item = $datetime->getParent(); // @todo Remove this in https://www.drupal.org/project/drupal/issues/2958416. if ($field_item instanceof DateTimeItem && $field_item->getFieldDefinition()->getFieldStorageDefinition()->getSetting('datetime_type') === DateTimeItem::DATETIME_TYPE_DATE) { @@ -57,6 +58,10 @@ public function denormalize($data, $class, $format = NULL, array $context = []) $field_definition = isset($context['target_instance']) ? $context['target_instance']->getFieldDefinition() : (isset($context['field_definition']) ? $context['field_definition'] : NULL); + if ($field_definition === NULL) { + throw new InvalidArgumentException('$context[\'target_instance\'] or $context[\'field_definition\'] must be set to denormalize with the DateTimeIso8601Normalizer'); + } + $datetime_type = $field_definition->getSetting('datetime_type'); $is_date_only = $datetime_type === DateTimeItem::DATETIME_TYPE_DATE;