DI\Container::resolveDefinition PHP Method

resolveDefinition() private method

Checks for circular dependencies while resolving the definition.
private resolveDefinition ( DI\Definition\Definition $definition, array $parameters = [] ) : mixed
$definition DI\Definition\Definition
$parameters array
return mixed
    private function resolveDefinition(Definition $definition, array $parameters = [])
    {
        $entryName = $definition->getName();
        // Check if we are already getting this entry -> circular dependency
        if (isset($this->entriesBeingResolved[$entryName])) {
            throw new DependencyException("Circular dependency detected while trying to resolve entry '{$entryName}'");
        }
        $this->entriesBeingResolved[$entryName] = true;
        // Resolve the definition
        try {
            $value = $this->definitionResolver->resolve($definition, $parameters);
        } catch (Exception $exception) {
            unset($this->entriesBeingResolved[$entryName]);
            throw $exception;
        }
        unset($this->entriesBeingResolved[$entryName]);
        return $value;
    }