File tree Expand file tree Collapse file tree 3 files changed +53
-0
lines changed
Expand file tree Collapse file tree 3 files changed +53
-0
lines changed Original file line number Diff line number Diff line change 1+ /vendor
2+ /composer.lock
3+ /composer.phar
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " clue/graph-composer" ,
3+ "require" : {
4+ "clue/graph" : " 0.5" ,
5+ "jms/composer-deps-analyzer" : " dev-master"
6+ }
7+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ use Fhaculty \Graph \GraphViz ;
4+ use Fhaculty \Graph \Graph ;
5+
6+ require_once __DIR__ . '/vendor/autoload.php ' ;
7+
8+ // directory to scan
9+ $ dir = isset ($ argv [1 ]) ? $ argv [1 ] : __DIR__ ;
10+
11+ $ analyzer = new \JMS \Composer \DependencyAnalyzer ();
12+ $ dependencyGraph = $ analyzer ->analyze ($ dir );
13+
14+ $ graph = new Graph ();
15+
16+ foreach ($ dependencyGraph ->getPackages () as $ package ) {
17+ $ name = $ package ->getName ();
18+ $ start = $ graph ->createVertex ($ name , true );
19+ $ start ->setLayout (array (
20+ 'label ' => $ name . ': ' . $ package ->getVersion (),
21+ 'fillcolor ' => '#eeeeee ' ,
22+ 'style ' => 'filled ' ,
23+ 'shape ' => 'box '
24+ ));
25+
26+ foreach ($ package ->getOutEdges () as $ requires ) {
27+ $ targetName = $ requires ->getDestPackage ()->getName ();
28+ $ target = $ graph ->createVertex ($ targetName , true );
29+ $ start ->createEdgeTo ($ target )->setLayout (array (
30+ 'label ' => $ requires ->getVersionConstraint (),
31+ 'fontcolor ' => '#999999 ' ,
32+ 'fontsize ' => 10
33+ ));
34+ }
35+ }
36+
37+ $ graph ->getVertex ($ dependencyGraph ->getRootPackage ()->getName ())->setLayout (array (
38+ 'fontcolor ' => 'red '
39+ ));
40+
41+ $ graphviz = new GraphViz ($ graph );
42+ $ graphviz ->setFormat ('svg ' );
43+ $ graphviz ->display ();
You can’t perform that action at this time.
0 commit comments