hn-8.x-1.x-dev/src/Normalizer/LinkNormalizer.php
src/Normalizer/LinkNormalizer.php
<?php namespace Drupal\hn\Normalizer; use Drupal\serialization\Normalizer\FieldItemNormalizer; /** * Transforms internal paths to url strings. * * An internal link is by default normalized as entity:node/9. This normalizer * transforms that to the actual url (/node-9 for example). */ class LinkNormalizer extends FieldItemNormalizer { protected $format = ['hn']; protected $supportedInterfaceOrClass = 'Drupal\link\Plugin\Field\FieldType\LinkItem'; /** * {@inheritdoc} */ public function normalize($field_item, $format = NULL, array $context = []) { /** @var \Drupal\link\Plugin\Field\FieldType\LinkItem $field_item */ // Don't normalize if the uri is null. See issue #2921663. if (is_null($field_item->get('uri')->getValue())) { return NULL; } $return = parent::normalize($field_item, $format, $context); $return['uri'] = $field_item->getUrl()->toString(); return $return; } }