diff --git a/block_field.services.yml b/block_field.services.yml index e953d1f..2b87c49 100755 --- a/block_field.services.yml +++ b/block_field.services.yml @@ -2,3 +2,10 @@ services: block_field.manager: class: Drupal\block_field\BlockFieldManager arguments: ['@plugin.manager.block'] + serializer.normalizer.block_field_item: + class: Drupal\block_field\Normalizer\BlockFieldItemNormalizer + arguments: ['@hal.link_manager', '@serializer.entity_resolver'] + # The priority must be higher than that of + # serializer.normalizer.field_item.hal in hal.services.yml. + tags: + - { name: normalizer, priority: 20} diff --git a/src/BlockFieldServiceProvider.php b/src/BlockFieldServiceProvider.php deleted file mode 100644 index 61b8da3..0000000 --- a/src/BlockFieldServiceProvider.php +++ /dev/null @@ -1,32 +0,0 @@ -getParameter('container.modules'); - if (isset($modules['hal'])) { - // In case Hal module is enabled, add a normalizer for block field items. - $service_definition = new Definition(BlockFieldItemNormalizer::class, [ - new Reference('hal.link_manager'), - new Reference('serializer.entity_resolver'), - ]); - $service_definition->addTag('normalizer', ['priority' => 20]); - $container->setDefinition('serializer.normalizer.block_field_item', $service_definition); - } - } - -} diff --git a/src/Normalizer/BlockFieldItemNormalizer.php b/src/Normalizer/BlockFieldItemNormalizer.php index 0c5f914..268bb52 100644 --- a/src/Normalizer/BlockFieldItemNormalizer.php +++ b/src/Normalizer/BlockFieldItemNormalizer.php @@ -11,9 +11,7 @@ use Drupal\hal\Normalizer\FieldItemNormalizer; class BlockFieldItemNormalizer extends FieldItemNormalizer { /** - * The interface or class that this Normalizer supports. - * - * @var string + * {@inheritdoc} */ protected $supportedInterfaceOrClass = BlockFieldItem::class; @@ -21,10 +19,10 @@ class BlockFieldItemNormalizer extends FieldItemNormalizer { * {@inheritdoc} */ public function normalize($field_item, $format = NULL, array $context = []) { - // Let HAL normalizer do the initial normalization. + // Let HAL field item normalizer do the initial normalization. $data = parent::normalize($field_item, $format, $context); - // Normalize settings property. + // The block's settings aren't normalized. Add them here. $data[$field_item->getParent()->getName()][0]['settings'] = $field_item->settings; return $data;