Symfony\Component\ClassLoader\ClassCollectionLoader::resolveDependencies PHP Method

resolveDependencies() private static method

This function does not check for circular dependencies as it should never occur with PHP traits.
private static resolveDependencies ( array $tree, ReflectionClass $node, ArrayObject $resolved = null, ArrayObject $unresolved = null ) : ArrayObject
$tree array The dependency tree
$node ReflectionClass The node
$resolved ArrayObject An array of already resolved dependencies
$unresolved ArrayObject An array of dependencies to be resolved
return ArrayObject The dependencies for the given node
    private static function resolveDependencies(array $tree, $node, \ArrayObject $resolved = null, \ArrayObject $unresolved = null)
    {
        if (null === $resolved) {
            $resolved = new \ArrayObject();
        }
        if (null === $unresolved) {
            $unresolved = new \ArrayObject();
        }
        $nodeName = $node->getName();
        if (isset($tree[$nodeName])) {
            $unresolved[$nodeName] = $node;
            foreach ($tree[$nodeName] as $dependency) {
                if (!$resolved->offsetExists($dependency->getName())) {
                    self::resolveDependencies($tree, $dependency, $resolved, $unresolved);
                }
            }
            $resolved[$nodeName] = $node;
            unset($unresolved[$nodeName]);
        }
        return $resolved;
    }