public function RegisterParamConvertersPass::process

Adds services tagged with "paramconverter" to the param converter service.

Parameters

\Symfony\Component\DependencyInjection\ContainerBuilder $container: The container to process.

Overrides CompilerPassInterface::process

File

drupal/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterParamConvertersPass.php, line 25
Contains Drupal\Core\DependencyInjection\Compiler\RegisterParamConvertersPass.

Class

RegisterParamConvertersPass
Registers EntityConverter services with the ParamConverterManager.

Namespace

Drupal\Core\DependencyInjection\Compiler

Code

public function process(ContainerBuilder $container) {
  if (!$container
    ->hasDefinition('paramconverter_manager')) {
    return;
  }
  $manager = $container
    ->getDefinition('paramconverter_manager');
  $services = array();
  foreach ($container
    ->findTaggedServiceIds('paramconverter') as $id => $attributes) {
    $priority = isset($attributes[0]['priority']) ? $attributes[0]['priority'] : 0;
    $services[$priority][] = new Reference($id);
  }
  krsort($services);
  foreach ($services as $priority) {
    foreach ($priority as $service) {
      $manager
        ->addMethodCall('addConverter', array(
        $service,
      ));
    }
  }
}