diff --git a/block_field.services.yml b/block_field.services.yml index 2b87c49..e953d1f 100755 --- a/block_field.services.yml +++ b/block_field.services.yml @@ -2,10 +2,3 @@ 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 new file mode 100644 index 0000000..3e3a9c8 --- /dev/null +++ b/src/BlockFieldServiceProvider.php @@ -0,0 +1,34 @@ +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'), + ]); + // The priority must be higher than that of + // serializer.normalizer.field_item.hal in hal.services.yml. + $service_definition->addTag('normalizer', ['priority' => 20]); + $container->setDefinition('serializer.normalizer.block_field_item', $service_definition); + } + } + +}