Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ResolveAutowireInlineAttributesPass.php

function ResolveAutowireInlineAttributesPass::processValue

Overrides AbstractRecursivePass::processValue

1 call to ResolveAutowireInlineAttributesPass::processValue()
ResolveAutowireInlineAttributesPass::registerAutowireInlineAttributes in vendor/symfony/dependency-injection/Compiler/ResolveAutowireInlineAttributesPass.php

File

vendor/symfony/dependency-injection/Compiler/ResolveAutowireInlineAttributesPass.php, line 33

Class

ResolveAutowireInlineAttributesPass
Inspects existing autowired services for { @author Ismail Özgün Turan <oezguen.turan@dadadev.com>

Namespace

Symfony\Component\DependencyInjection\Compiler

Code

protected function processValue(mixed $value, bool $isRoot = false) : mixed {
    $value = parent::processValue($value, $isRoot);
    if (!$value instanceof Definition || !$value->isAutowired() || !$value->getClass() || $value->hasTag('container.ignore_attributes')) {
        return $value;
    }
    if ($isRoot) {
        $this->counter = 0;
    }
    $isChildDefinition = $value instanceof ChildDefinition;
    try {
        $constructor = $this->getConstructor($value, false);
    } catch (RuntimeException) {
        return $value;
    }
    if ($constructor) {
        $arguments = $this->registerAutowireInlineAttributes($constructor, $value->getArguments(), $isChildDefinition);
        if ($arguments !== $value->getArguments()) {
            $value->setArguments($arguments);
        }
    }
    $methodCalls = $value->getMethodCalls();
    foreach ($methodCalls as $i => $call) {
        [
            $method,
            $arguments,
        ] = $call;
        try {
            $method = $this->getReflectionMethod($value, $method);
        } catch (RuntimeException) {
            continue;
        }
        $arguments = $this->registerAutowireInlineAttributes($method, $arguments, $isChildDefinition);
        if ($arguments !== $call[1]) {
            $methodCalls[$i][1] = $arguments;
        }
    }
    if ($methodCalls !== $value->getMethodCalls()) {
        $value->setMethodCalls($methodCalls);
    }
    return $value;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal