function PhpDumper::addServiceConfigurator
1 call to PhpDumper::addServiceConfigurator()
- PhpDumper::addInlineService in vendor/
symfony/ dependency-injection/ Dumper/ PhpDumper.php
File
-
vendor/
symfony/ dependency-injection/ Dumper/ PhpDumper.php, line 793
Class
- PhpDumper
- PhpDumper dumps a service container as a PHP class.
Namespace
Symfony\Component\DependencyInjection\DumperCode
private function addServiceConfigurator(Definition $definition, string $variableName = 'instance') : string {
if (!($callable = $definition->getConfigurator())) {
return '';
}
if (\is_array($callable)) {
if ($callable[0] instanceof Reference || $callable[0] instanceof Definition && $this->definitionVariables
->contains($callable[0])) {
return \sprintf(" %s->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
}
$class = $this->dumpValue($callable[0]);
// If the class is a string we can optimize away
if (str_starts_with($class, "'") && !str_contains($class, '$')) {
return \sprintf(" %s::%s(\$%s);\n", $this->dumpLiteralClass($class), $callable[1], $variableName);
}
if (str_starts_with($class, 'new ')) {
return \sprintf(" (%s)->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
}
return \sprintf(" [%s, '%s'](\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
}
return \sprintf(" %s(\$%s);\n", $callable, $variableName);
}