NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #875 most downloaded on Packagist
A basic but flexible php tree data structure and a fluent tree builder implementation.
Last release 24 days ago
14 Sep 2026
Ships unpredictably
gaps range from 4 weeks to 4.8 years
Nearly every release is documented
notes for 23 of 24 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
24 releases · first in 2013
github-actions(deps): Bump shivammathur/setup-php from 2.35.5 to 2.36.0 by @dependabot [bot] in #372
Full Changelog: 0.10.1...0.11.0
One column per quarter.
For a full diff see [0.10.1...0.11.0][0.10.1...0.11.0].
use generic for node value by @smoench in #333
For a full diff see [0.10.0...0.10.1][0.10.0...0.10.1].
composer(deps-dev): bump ergebnis/composer-normalize from 2.44.0 to 2.45.0 by @dependabot [bot] in #334
iconv extension by @localheinz in #371Full Changelog: 0.9.0...0.10.0
For a full diff see [0.9.0...0.10.0][0.9.0...0.10.0].
Fix: Unset platform configuration as needed by @localheinz in #241
platform configuration as needed by @localheinz in #241Full Changelog: 0.8.0...0.9.0
For a full diff see [0.8.0...0.9.0`][0.8.0...0.9.0].
Enhancement: Add support for PHP 8.3 by @localheinz in #236
Full Changelog: 0.7.2...0.8.0
For a full diff see [0.7.2...0.8.0`][0.7.2...0.8.0].
Fix: Throw LogicException when attempting to get Node from empty NodeBuilder by @localheinz in #209
LogicException when attempting to get Node from empty NodeBuilder by @localheinz in #209Full Changelog: 0.7.1...0.7.2
For a full diff see [0.7.1...0.7.2`][0.7.1...0.7.2].
LogicException when attempting to get a Node from an empty NodeBuilder ([#209]), by [@localheinz]Enhancement: Use variadics by @localheinz in #168
For a full diff see [0.7.0...0.7.1`][0.7.0...0.7.1].
NodeBuilderInterface::leafs() and NodeBuilder::leafs() ([#168]), by [@localheinz]Fix: Use static by @localheinz in #149
static by @localheinz in #149array from getNeighbors() when node is root by @localheinz in #153getNeighborsAndSelf() when node is root by @localheinz in #154infection/infection by @localheinz in #155Full Changelog: 0.6.0...0.7.0
For a full diff see [0.6.0...0.7.0`][0.6.0...0.7.0].
NodeInterface::root() from self to static ([#149]), by [@localheinz]NodeInterface::getSize() ([#150]), by [@localheinz]Node::getNeigbors() when node is root ([#153]), by [@localheinz]Node::getNeigborsAndSelf() when node is root ([#154]), by [@localheinz]composer(deps-dev): Bump ergebnis/license from 1.1.0 to 2.1.0 by @dependabot in #139
maglnet/composer-require-checker by @localheinz in #146getSize() to NodeInterface by @localheinz in #147root() to NodeInterface by @localheinz in #148Full Changelog: 0.5.0...0.6.0
For a full diff see [0.5.0...0.6.0`][0.5.0...0.6.0].
getSize() to NodeInterface ([#147]), by [@localheinz]root() to NodeInterface ([#148]), by [@localheinz]github-actions(deps): bump actions/checkout from 3.0.2 to 3.1.0 by @dependabot in #114
~ operator to limit compatibility with PHP versions by @localheinz in #134Full Changelog: 0.4.0...0.5.0
For a full diff see [0.4.0...0.5.0][0.4.0...0.5.0].
Fix: Reference by @localheinz in #82
vimeo/psalm by @localheinz in #111Full Changelog: 0.3.1...0.4.0
For a full diff see [0.3.1...0.4.0][0.3.1...0.4.0].
For a full diff see [0.3.0...0.3.1][0.3.0...0.3.1].
For a full diff see [0.3.0...0.3.1][0.3.0...0.3.1].
For a full diff see [0.2.7...0.3.0][0.2.7...0.3.0].
For a full diff see [0.2.7...0.3.0][0.2.7...0.3.0].
NodeTrait to Node ([#30]), by [@asalazar-pley]For a full diff see [0.2.6...0.2.7][0.2.6...0.2.7].
For a full diff see [0.2.6...0.2.7][0.2.6...0.2.7].
For a full diff see [0.2.5...0.2.6][0.2.5...0.2.6].
For a full diff see [0.2.5...0.2.6][0.2.5...0.2.6].
getSize() method to Node ([#17]), by [@Djuki]For a full diff see [0.2.4...0.2.5][0.2.4...0.2.5].
For a full diff see [0.2.4...0.2.5][0.2.4...0.2.5].
getDepth() and getHeight() methods to Node ([#9]), by [@nicmart]For a full diff see [0.2.3...0.2.4][0.2.3...0.2.4].
For a full diff see [0.2.3...0.2.4][0.2.3...0.2.4].
For a full diff see [0.2.2...0.2.3][0.2.2...0.2.3].
For a full diff see [0.2.2...0.2.3][0.2.2...0.2.3].
Node::getAncestors() now does not return the current node ([#4]), by [@nicmart],For a full diff see [0.2.1...0.2.2][0.2.1...0.2.2].
For a full diff see [0.2.1...0.2.2][0.2.1...0.2.2].
For a full diff see [0.2.0...0.2.1][0.2.0...0.2.1].
For a full diff see [0.2.0...0.2.1][0.2.0...0.2.1].
root() and isRoot() to NodeFor a full diff see [0.1.2...0.2.0][0.1.2...0.2.0].
For a full diff see [0.1.2...0.2.0][0.1.2...0.2.0].
NodeTrait from NodeFor a full diff see [0.1.1...0.1.2][0.1.1...0.1.2].
For a full diff see [0.1.1...0.1.2][0.1.1...0.1.2].
YieldVisitor, to get the yield of the treeFor a full diff see [fcfd14e...v0.1.1][fcfd14e...0.1.1].
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →