You are here

public function ViewsreferenceServiceProvider::alter in Views Reference Field 8.2

Modifies existing service definitions.

Parameters

ContainerBuilder $container: The ContainerBuilder whose service definitions can be altered.

Overrides ServiceProviderBase::alter

File

src/ViewsreferenceServiceProvider.php, line 18

Class

ViewsreferenceServiceProvider
Service Provider for Views Reference.

Namespace

Drupal\viewsreference

Code

public function alter(ContainerBuilder $container) {
  $modules = $container
    ->getParameter('container.modules');

  // Add the views reference normalizer for the HAL module.
  if (isset($modules['hal'])) {
    $parent_definition = $container
      ->getDefinition('serializer.normalizer.entity_reference_item.hal');
    $service_definition = new Definition(ViewsReferenceItemNormalizer::class, $parent_definition
      ->getArguments());

    // The priority must be higher than that of
    // serializer.normalizer.entity_reference_item.hal in hal.services.yml.
    $service_definition
      ->addTag('normalizer', [
      'priority' => $parent_definition
        ->getTags()['normalizer'][0]['priority'] + 1,
    ]);
    $container
      ->setDefinition('viewsreference.normalizer.views_reference_item.hal', $service_definition);
  }
}