previousnext/nested-set

PHP Doctrine DBAL 嵌套集实现。

2.0.1 2022-12-01 05:34 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:11 UTC


README

PHP Doctrine DBAL 嵌套集实现。

CircleCI

使用

创建表结构

创建表结构,传入 DBAL 连接和表名(默认为 'tree')。

$schema = new DbalNestedSetSchema($connection, 'my_tree');
schema->create();

设置嵌套集客户端

创建一个新的 DbalNestedSet,传入 DBAL 连接和表名。

$nestedSet = new DbalNestedSet($connection, 'my_tree');

添加根节点

NodeKey 表示树中节点的唯一 ID。它支持节点 ID 和修订 ID 的概念,主要用于与 Drupal 兼容。

$nodeKey = new NodeKey($id, $revisionId);
$rootNode = $nestedSet->addRootNode($nodeKey);

添加子节点

要添加子节点,您需要提供父节点和子节点键。

$nodeKey = new NodeKey($id, $revisionId);
$nestedSet->addNodeBelow($rootNode, $nodeKey);

查找后代

要查找后代,您需要提供父节点键。

$nodeKey = new NodeKey($id, $revisionId);
$descendants = $this->nestedSet->findDescendants($nodeKey);

查找祖先

要查找祖先,您需要提供子节点键。

$nodeKey = new NodeKey($id, $revisionId);
$ancestors = $this->nestedSet->findAncestors($nodeKey);

查看 \PNX\NestedSet\NestedSetInterface 以获取更多用于与嵌套集交互的方法。

开发

依赖项

要安装所有依赖项,运行

make init

代码检查

使用 Drupal 编码标准。

要运行代码规范检查,运行

make lint-php

要自动修复代码规范问题,运行

make fix-php

测试

要运行所有 phpunit 测试,运行

make test