Clue\GraphComposer\Graph\GraphComposer::createGraph PHP Method

createGraph() public method

public createGraph ( ) : Fhaculty\Graph\Graph
return Fhaculty\Graph\Graph
    public function createGraph()
    {
        $graph = new Graph();
        foreach ($this->dependencyGraph->getPackages() as $package) {
            $name = $package->getName();
            $start = $graph->createVertex($name, true);
            $label = $name;
            if ($package->getVersion() !== null) {
                $label .= ': ' . $package->getVersion();
            }
            $this->setLayout($start, array('label' => $label) + $this->layoutVertex);
            foreach ($package->getOutEdges() as $requires) {
                $targetName = $requires->getDestPackage()->getName();
                $target = $graph->createVertex($targetName, true);
                $label = $requires->getVersionConstraint();
                $edge = $start->createEdgeTo($target);
                $this->setLayout($edge, array('label' => $label) + $this->layoutEdge);
                if ($requires->isDevDependency()) {
                    $this->setLayout($edge, $this->layoutEdgeDev);
                }
            }
        }
        $root = $graph->getVertex($this->dependencyGraph->getRootPackage()->getName());
        $this->setLayout($root, $this->layoutVertexRoot);
        return $graph;
    }

Usage Example

 public function testCreateGraph()
 {
     $dir = __DIR__ . '/../';
     $graphComposer = new GraphComposer($dir);
     $graph = $graphComposer->createGraph();
     $this->assertInstanceOf('Fhaculty\\Graph\\Graph', $graph);
     $this->assertTrue(count($graph->getVertices()) > 0);
 }