function TaggedHandlersPass::resolveDefinitionClass

Same name and namespace in other branches
  1. main core/lib/Drupal/Core/DependencyInjection/Compiler/TaggedHandlersPass.php \Drupal\Core\DependencyInjection\Compiler\TaggedHandlersPass::resolveDefinitionClass()

Resolves the definition class.

Parameters

\Symfony\Component\DependencyInjection\Definition $definition: The service definition.

\Symfony\Component\DependencyInjection\ContainerBuilder $container: The service container.

Return value

class-string|null The resolved class-string or null if the class cannot be resolved.

1 call to TaggedHandlersPass::resolveDefinitionClass()
TaggedHandlersPass::processServiceCollectorPass in core/lib/Drupal/Core/DependencyInjection/Compiler/TaggedHandlersPass.php
Processes a service collector service pass.

File

core/lib/Drupal/Core/DependencyInjection/Compiler/TaggedHandlersPass.php, line 266

Class

TaggedHandlersPass
Collects services to add/inject them into a consumer service.

Namespace

Drupal\Core\DependencyInjection\Compiler

Code

protected function resolveDefinitionClass(Definition $definition, ContainerBuilder $container) : ?string {
  $class = $definition->getClass();
  if ($class) {
    return $class;
  }
  if (!$definition instanceof ChildDefinition) {
    return NULL;
  }
  if (!$container->hasDefinition($definition->getParent())) {
    return NULL;
  }
  $parent = $container->getDefinition($definition->getParent());
  return $this->resolveDefinitionClass($parent, $container);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.