oliva / tree
处理树型数据结构和从数据库表等存储的扁平数据构建树的实用工具。
1.4
2022-01-17 18:23 UTC
Requires
- php: ^8.0 || ^7.4
Requires (Dev)
- nette/tester: ^2
- tracy/tracy: ^2.3
README
📢
这个库自从诞生以来已经很久远了。它仍然在支持现代PHP,但远未达到最佳状态。
在此处查看这个库的现代重构版本:👉
dakujem/oliva
Oliva Tree
处理树型数据结构的实用工具。
💿
composer require oliva/tree
📖 文档
Oliva Tree 是一个功能强大且易于使用的PHP处理树型数据结构的实用工具。
适用于处理存储在数据库中的树型数据,或在任意树型结构上执行搜索和过滤操作。
为什么使用 Oliva Tree?
- 数据操作
- 轻松编写如菜单、树视图、网格、数据列表等组件。
- 有文档支持
- 经过战斗和单元测试
您可以使用 Oliva Tree 做什么?
- 从任意扁平数据 构建树结构,支持
- 物化路径数据模型
- 递归树(父 - id)(邻接表数据模型,自连接表)
- 从 JSON 字符串构建树
- 使用流畅的接口构建树
- 无缝包装对象为
Node
类,并继续像以前一样使用它们 - 增强已存在于树结构中的数据的功能
- 通过广度优先或深度优先方式查找节点
- 按任何条件过滤节点
- 比较树、节点、子树
- 提供易于操作的树结构
- 将树结构(回)转换为扁平数据,以广度优先或深度优先的方式
文档
有关更深入的信息、用例和其他示例,请参阅 文档部分。
安装
composer require oliva/tree
Oliva Tree 的旧版本在 PHP 5.4 及以上和 PHP 7.0 及以上版本上运行。自 1.3 版本以来,支持 PHP 7.4+ 和 PHP 8+(包括 PHP 8.2 和 PHP 8.3)。
变更日志
仅列出显著变化。
1.4
- 支持 PHP 8.1+
- 添加了一些返回类型提示
1.3
- 添加了对 PHP 8.0 的支持
- 需要 PHP 7.4+
- 更新为简单的许可协议(Unlicense)
1.2.3
- 更新许可协议以启用多许可,即现在可以使用任何 GPL、MIT 或 BSD 许可协议,有关更多信息请参阅 license.md
缺少的功能
我从未添加这些...
- 修剪(基于条件和深度)
- 节点移动机制/助手
- 树写入器 - 更改节点数据以反映当前的树结构(准备存储) - 树构建器的对应物
- 统一和文档化异常代码
- 支持嵌套集数据模型
经过考虑,这些大多数事情实际上都不在这个库的范围内。
注释
非常感谢 Via Aurea 团队提供宝贵的支持、动力和实际测试。
🎉
我终于找到了重新实现这个用于构建和管理树工具想法的理由。
现代重实现请看这里:👉
dakujem/oliva