nayjest / tree
PHP 的树形数据结构
v3.2.1
2016-01-27 14:21 UTC
Requires
- php: >=5.4.0
- nayjest/collection: ^2.1
Requires (Dev)
- phpunit/phpunit: ^4.6
README
PHP 的树形数据结构
要求
- php 5.4+
安装
建议通过 Composer 安装此组件。
运行以下命令
composer require nayjest/tree
概览
树节点
节点是基本树元素。此包将树节点表示为 Nayjest\Tree\Node 的实例。由于节点不包含任何超出组织到树的功能之外的功能,因此该包旨在以不同的方式扩展其组件功能
- 扩展基本类(Node, ReadonlyNode)
- 提供您自己的 ParentNodeInterface 和 ChildNodeInterface 实现方案
- 如果您不能使用节点类作为基类,则可以使用 traits(NodeTrait, ChildNodeTrait, ParentNodeTrait, ReadonlyNodeTrait)和接口
节点集合
每个节点在其内部存储其子节点实例的 Nayjest\Tree\NodeCollection。
此包使用 nayjest/collections 来处理集合。
类 Nayjest\Tree\NodeCollection 提供了父-子节点关系的一致性。
这意味着如果您将节点添加到集合中,则该节点将自动附加到与集合关联的父节点,如果您从集合中删除节点,则节点将断开与父节点的连接。
树
类 Nayjest\Tree\Tree 允许您
- 使用 命名节点 组织树(节点本身不存储有关其名称的信息,类 Tree 与实现 NodeInterface 的任何对象一起工作)
- 基于层次配置(仅包含节点名称的多维数组)和节点注册表(键是名称,值是节点的关联数组)构建 基于树的配置
- 以方便的方式 操作命名节点(Tree API)
- 通过 Node API 方法修改树结构以避免节点关系的不一致性。
Nayjest\Tree\Utils
此类是辅助函数的外观。
测试
运行以下命令
phpunit
许可证
© 2014—2016 Vitalii Stepanenko
根据 MIT 许可证许可。
有关更多信息,请参阅 许可证文件。