previousnext / nested-set
PHP Doctrine DBAL 嵌套集实现。
2.0.1
2022-12-01 05:34 UTC
Requires
- php: >=8.0
- doctrine/dbal: ^3.3
Requires (Dev)
- ext-pdo_sqlite: *
- dealerdirect/phpcodesniffer-composer-installer: ^0.7
- drupal/coder: ^8.3.12
- pear/console_table: ^1.3
- phpcompatibility/php-compatibility: ^9.3
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.4
- phpstan/phpstan-deprecation-rules: ^1.0
- phpunit/phpunit: ^8.5 || ^9.3
- squizlabs/php_codesniffer: ^3.7.1
README
PHP Doctrine DBAL 嵌套集实现。
使用
创建表结构
创建表结构,传入 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