pbergman / tree-helper
一个用于打印树的 symfony 控制台助手
1.0.2
2022-02-08 08:28 UTC
Requires
- php: >=5.4.0
- symfony/console: >=2.6
This package is auto-updated.
Last update: 2024-08-29 12:44:10 UTC
README
这是一个用于 symfony 控制台以流畅和灵活的方式打印树的轻量级库。
输出类似于 Linux tree 命令,可以用于调试或输出关系型数据。
使用方法
$tree = new TreeHelper($output);
$tree
->newNode('first')
->addValue('fist value')
->addValue('second value')
->newNode('fist sub')
->addValue('fist sub value')
->addValue('second sub value')
->newNode('fist sub sub')
->addValue('fist sub sub value')
->addValue('second sub sub value')
->end()
->end()
->newNode('second')
->addValue('second value')
->addValue('second second value')
->end();
$tree->printTree();
或者
$tree = new TreeHelper($output);
$tree->addArray([
'first' => [
0 => 'fist value',
1 => 'second value',
'fist sub' => [
0 => 'fist sub value',
1 => 'second sub value',
'fist sub sub' => [
'fist sub sub value',
'second sub sub value',
],
],
],
'second' => [
'second value',
'second second value',
]
]);
这将输出
.
│
└── first
├── fist value
├── second value
├── fist sub
│ ├── fist sub value
│ ├── second sub value
│ └── fist sub sub
│ ├── fist sub sub value
│ └── second sub sub value
└── second
├── second value
└── second second value
有关其他示例,请参阅测试。
方法
newNode($name)
创建一个新的节点并将其绑定到父节点
addNode($nodeobject:self)
将节点追加到树中
end()
将返回父对象(如果设置了,否则为 null)
getRoot()
将返回根节点
printTree($outputobject:OutputInterface)
将树打印到输出
findNode($name)
通过标题搜索节点
toArray()
返回数据的数组表示
getTitle()
返回节点的标题
setTitle($title)
设置节点的标题
addValue($value)
向节点添加一个值,这可以是一个有效的标量或具有 __toString 方法的对象
addArray($array)
向节点添加一个嵌套数组
setValues($array)
向节点添加一个扁平数组,这将作为节点的值设置
setParent($parentobject:self)
设置节点的父节点,如果节点已与给定的节点链接,则将抛出 RuntimeException,这样我们不会得到无限循环。
getNodes()
获取节点中定义的所有(子)节点,所有节点仅保存在根节点中,因此要获取所有节点,您可能需要执行此操作 $t->getRoot()->getNodes(); 否则,它将返回父节点设置为节点的节点,从您调用此方法的位置开始。
setMaxDepth($depth)
设置节点值的最大深度,这可以在全局(根节点)或特定节点上完成。
getMaxDepth()
返回设置的最大深度
setFormats()
设置使用的格式
$tree->setFormats([
TreeHelper::LINE_PREFIX_EMPTY => ' ',
TreeHelper::LINE_PREFIX => '│ ',
TreeHelper::TEXT_PREFIX => '├ ',
TreeHelper::TEXT_PREFIX_END => '└ ',
]);
例如,no 它将使用两个空格缩进而不是四个,请参阅测试
setFormat($id, $format)
覆盖特定格式