Symfony\Component\DependencyInjection\Dumper\PhpDumper::addServiceInstance PHP Method

addServiceInstance() private method

Generates the service instance.
private addServiceInstance ( string $id, Definition $definition ) : string
$id string
$definition Symfony\Component\DependencyInjection\Definition
return string
    private function addServiceInstance($id, Definition $definition)
    {
        $class = $definition->getClass();

        if ('\\' === substr($class, 0, 1)) {
            $class = substr($class, 1);
        }

        $class = $this->dumpValue($class);

        if (0 === strpos($class, "'") && false === strpos($class, '$') && !preg_match('/^\'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) {
            throw new InvalidArgumentException(sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id));
        }

        $simple = $this->isSimpleInstance($id, $definition);
        $isProxyCandidate = $this->getProxyDumper()->isProxyCandidate($definition);
        $instantiation = '';

        if (!$isProxyCandidate && $definition->isShared()) {
            $instantiation = "\$this->services['$id'] = ".($simple ? '' : '$instance');
        } elseif (!$simple) {
            $instantiation = '$instance';
        }

        $return = '';
        if ($simple) {
            $return = 'return ';
        } else {
            $instantiation .= ' = ';
        }

        $code = $this->addNewInstance($definition, $return, $instantiation, $id);

        if (!$simple) {
            $code .= "\n";
        }

        return $code;
    }