Nette\DI\ContainerBuilder::resolveServiceClass PHP Method

resolveServiceClass() private method

private resolveServiceClass ( $name, $recursive = [] ) : string | null
return string | null
    private function resolveServiceClass($name, $recursive = [])
    {
        if (isset($recursive[$name])) {
            throw new ServiceCreationException(sprintf('Circular reference detected for services: %s.', implode(', ', array_keys($recursive))));
        }
        $recursive[$name] = TRUE;
        $def = $this->definitions[$name];
        $factoryClass = $def->getFactory() ? $this->resolveEntityClass($def->getFactory()->getEntity(), $recursive) : NULL;
        // call always to check entities
        if ($class = $def->getClass() ?: $factoryClass) {
            if (!class_exists($class) && !interface_exists($class)) {
                throw new ServiceCreationException("Class or interface '{$class}' used in service '{$name}' not found.");
            }
            self::checkCase($class);
            $def->setClass($class);
            if (count($recursive) === 1) {
                $this->addDependency(new ReflectionClass($factoryClass ?: $class));
            }
        } elseif ($def->getAutowired()) {
            throw new ServiceCreationException("Unknown type of service '{$name}', declare return type of factory method (for PHP 5 use annotation @return)");
        }
        return $class;
    }