mareg/dependency-graph
最新稳定版本:0.2.1
Composer 安装命令:
composer require mareg/dependency-graph
包简介
README 文档
README
A dependency graph implementation.
Examples
<?php use PlasmaConduit\DependencyGraph; use PlasmaConduit\dependencygraph\DependencyGraphNode; use PlasmaConduit\dependencygraph\DependencyGraphNodes; // Initialize the graph and some stand alone nodes $graph = new DependencyGraph(); $nodeA = new DependencyGraphNode("A"); $nodeB = new DependencyGraphNode("B"); $nodeC = new DependencyGraphNode("C"); $nodeD = new DependencyGraphNode("D"); $nodeE = new DependencyGraphNode("E"); $nodeF = new DependencyGraphNode("F"); $nodeG = new DependencyGraphNode("G"); // Add the root node A $graph->addRoot($nodeA); $graph->addDependency($nodeA, $nodeB); $graph->addDependency($nodeA, $nodeC); $graph->addDependency($nodeB, $nodeD); $graph->addDependency($nodeC, $nodeE); $graph->addDependency($nodeC, $nodeF); // Tree Status: // A // / \ // B C // / / \ // D E F echo json_encode($graph->toArray(), JSON_PRETTY_PRINT); // Outputs: // [ // { // "A": [ // { // "B": [ // "D" // ] // }, // { // "C": [ // "D", // "E" // ] // } // ] // } // ] // Try to create a circular dependency by making E dependent on A // This should fail and refuse to fulfill the dependency $graph->addDependency($nodeE, $nodeA); echo json_encode($graph->toArray(), JSON_PRETTY_PRINT); // Outputs: // [ // { // "A": [ // { // "B": [ // "D" // ] // }, // { // "C": [ // "D", // "E" // ] // } // ] // } // ] // Add a node that already has dependencies to an adjacent branch $graph->addDependency($nodeD, $nodeC); // Tree Status: // A // / \ // B C // / / \ // D E F // \ // C // / \ // E F echo json_encode($graph->toArray(), JSON_PRETTY_PRINT); // Outputs: // [ // { // "A": [ // { // "B": [ // { // "D": [ // { // "C": [ // "E", // "F" // ] // } // ] // } // ] // }, // { // "C": [ // "E", // "F" // ] // } // ] // } // ] echo implode(",", $graph->flatten());
统计信息
- 总下载量: 15.01k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2017-03-01