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\CompilerCode
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;
}