nayjest/tree

PHP 的树形数据结构

v3.2.1 2016-01-27 14:21 UTC

README

PHP 的树形数据结构

Build Status Scrutinizer Code Quality Latest Stable Version

要求

  • 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 许可证许可。

有关更多信息,请参阅 许可证文件