Puli\Manager\Conflict\DependencyGraph::getPathDFS PHP Method

getPathDFS() private method

Finds a path between modules using Depth-First Search.
private getPathDFS ( string $moduleName, string $dependency, array &$reversePath = [] ) : boolean
$moduleName string The end module name.
$dependency string The start module name.
$reversePath array The path in reverse order.
return boolean Whether a path was found.
    private function getPathDFS($moduleName, $dependency, &$reversePath = array())
    {
        // does not exist in the graph
        if (!isset($this->dependencies[$moduleName])) {
            return false;
        }
        $reversePath[] = $moduleName;
        // adjacent node
        if (isset($this->dependencies[$moduleName][$dependency])) {
            $reversePath[] = $dependency;
            return true;
        }
        // DFS
        foreach ($this->dependencies[$moduleName] as $predecessor => $_) {
            if ($this->getPathDFS($predecessor, $dependency, $reversePath)) {
                return true;
            }
        }
        return false;
    }