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 |
Résultat | 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;
}