A PHP Doctrine DBAL implementation for Nested Sets.
Create the table schema, passing in a a DBAL connection and table name (defaults to 'tree').
$schema = new DbalNestedSetSchema($connection, 'my_tree'); schema->create();Create a new DbalNestedSet passing in the DBAL connection and the table name.
$nestedSet = new DbalNestedSet($connection, 'my_tree');A NodeKey represents a unique ID for a node in the tree. It supports the idea of a node ID and a revision ID, mostly for compatibility with Drupal.
$nodeKey = new NodeKey($id, $revisionId); $rootNode = $nestedSet->addRootNode($nodeKey);To add a child node, you provide the parent node, and a child node key.
$nodeKey = new NodeKey($id, $revisionId); $nestedSet->addNodeBelow($rootNode, $nodeKey);To find descendents, you provide the parent node key.
$nodeKey = new NodeKey($id, $revisionId); $descendants = $this->nestedSet->findDescendants($nodeKey);To find ancestors, you provide the child node key.
$nodeKey = new NodeKey($id, $revisionId); $ancestors = $this->nestedSet->findAncestors($nodeKey);See \PNX\NestedSet\NestedSetInterface for many more methods that can be used for interacting with the nested set.
To install all dependencies, run:
make init Uses the Drupal coding standard.
To validate code sniffs run:
make lint-php To automatically fix code sniff issues, run:
make fix-php To run all phpunit tests, run:
make test