A library that provides the tree node functionality.

v0.1.1 2019-09-30 06:36 UTC

This package is auto-updated.

Last update: 2021-03-29 00:45:54 UTC


A library that provides the tree node functionality.


composer require aeviiq/tree-node


// ...
use Aeviiq\TreeNode\TreeNodeTrait;

final class Foo implements FooBarInterface
    use TreeNodeTrait;
    // ...

Will provide the Foo class with the functionality to support the tree node structure:

Image description


$foo = new Foo();
$foo2 = new Foo();

$foo->isRoot(); // true
$foo2->isRoot(); // false

$foo->isLeaf(); // false
$foo2->isLeaf(); // true
$foo2->getRoot() === $foo; // true

Notable mentions

*There is no 'protection' against the case where a node can become it's own grand parent|child. When this is the case, it could cause infinite recursion errors in methods such as getRoot(). Making a node its own grand parent or grand child is just a plain wrong usage of this tree node component, therefor it is not worth the performance decrease to recursively validate against.