nicmart/tree
A basic but flexible php tree data structure and a fluent tree builder implementation.
0.10.1
22M downloads/mo
#887 most downloaded on Packagist
nicmart/Tree
What this package is like to depend on
Last release 9 months ago
25 Nov 2025
Ships unpredictably
gaps range from 4 weeks to 4.8 years
Nearly every release is documented
notes for 22 of 23 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
23 releases · first in 2013
2 releases in the last 12 months
see the full history below
Release timeline
23 releases · Apr 2013 to Nov 2025Releases
latest 23-
0.10.125 Nov 2025Release notes
Open source →For a full diff see [0.9.0...0.10.0`][0.10.0...0.10.1].
Added
- Added template/generic annotations for node values ([#333]), by [@smoench]
-
0.10.025 Nov 2025Release notes
Open source →What's Changed
- composer(deps-dev): bump ergebnis/composer-normalize from 2.44.0 to 2.45.0 by @dependabot[bot] in #334
- github-actions(deps): bump actions/cache from 4.1.2 to 4.2.0 by @dependabot[bot] in #335
- github-actions(deps): bump codecov/codecov-action from 5.0.7 to 5.1.2 by @dependabot[bot] in #337
- github-actions(deps): bump shivammathur/setup-php from 2.31.1 to 2.32.0 by @dependabot[bot] in #338
- github-actions(deps): bump ergebnis/.github from 1.9.2 to 1.9.3 by @dependabot[bot] in #345
- github-actions(deps): bump actions/cache from 4.2.0 to 4.2.3 by @dependabot[bot] in #346
- github-actions(deps): bump shivammathur/setup-php from 2.32.0 to 2.33.0 by @dependabot[bot] in #347
- github-actions(deps): bump codecov/codecov-action from 5.1.2 to 5.4.2 by @dependabot[bot] in #348
- composer(deps-dev): bump ergebnis/composer-normalize from 2.45.0 to 2.47.0 by @dependabot[bot] in #349
- github-actions(deps): Bump codecov/codecov-action from 5.4.2 to 5.4.3 by @dependabot[bot] in #350
- github-actions(deps): Bump shivammathur/setup-php from 2.33.0 to 2.34.0 by @dependabot[bot] in #351
- github-actions(deps): Bump shivammathur/setup-php from 2.34.0 to 2.34.1 by @dependabot[bot] in #352
- github-actions(deps): Bump shivammathur/setup-php from 2.34.1 to 2.35.1 by @dependabot[bot] in #353
- github-actions(deps): Bump shivammathur/setup-php from 2.35.1 to 2.35.2 by @dependabot[bot] in #354
- github-actions(deps): Bump actions/cache from 4.2.3 to 4.2.4 by @dependabot[bot] in #355
- github-actions(deps): Bump actions/checkout from 4.2.2 to 4.3.0 by @dependabot[bot] in #356
- github-actions(deps): Bump actions/checkout from 4.3.0 to 5.0.0 by @dependabot[bot] in #358
- github-actions(deps): Bump shivammathur/setup-php from 2.35.2 to 2.35.3 by @dependabot[bot] in #357
- github-actions(deps): Bump codecov/codecov-action from 5.4.3 to 5.5.0 by @dependabot[bot] in #359
- github-actions(deps): Bump shivammathur/setup-php from 2.35.3 to 2.35.4 by @dependabot[bot] in #360
- composer(deps-dev): Bump ergebnis/composer-normalize from 2.47.0 to 2.48.1 by @dependabot[bot] in #361
- github-actions(deps): Bump ergebnis/.github from 1.9.3 to 1.10.0 by @dependabot[bot] in #363
- github-actions(deps): Bump codecov/codecov-action from 5.5.0 to 5.5.1 by @dependabot[bot] in #364
- composer(deps-dev): Bump ergebnis/composer-normalize from 2.48.1 to 2.48.2 by @dependabot[bot] in #365
- composer(deps-dev): Bump ergebnis/license from 2.6.0 to 2.7.0 by @dependabot[bot] in #362
- github-actions(deps): Bump shivammathur/setup-php from 2.35.4 to 2.35.5 by @dependabot[bot] in #366
- github-actions(deps): Bump actions/cache from 4.2.4 to 4.3.0 by @dependabot[bot] in #367
- github-actions(deps): Bump actions/checkout from 5.0.0 to 5.0.1 by @dependabot[bot] in #368
- github-actions(deps): Bump actions/checkout from 5.0.1 to 6.0.0 by @dependabot[bot] in #369
- Fix: Enable
iconvextension by @localheinz in #371 - Add support for PHP 8.5 by @dwightwatson in #370
New Contributors
- @dwightwatson made their first contribution in #370
Full Changelog: 0.9.0...0.10.0
Release notes
Open source →For a full diff see [0.9.0...0.10.0`][0.9.0...0.10.0].
Added
- Added support for PHP 8.5 ([#370]), by [@dwightwatson]
-
0.9.022 Nov 2024Release notes
Open source →What's Changed
- Fix: Unset
platformconfiguration as needed by @localheinz in #241 - Fix typo in .gitattributes by @VincentLanglet in #275
- Add support for PHP 8.4 by @pascalbaljet in #331
New Contributors
- @VincentLanglet made their first contribution in #275
Full Changelog: 0.8.0...0.9.0
Release notes
Open source →For a full diff see [0.8.0...0.9.0`][0.8.0...0.9.0].
Added
- Added support for PHP 8.4 ([#331]), by [@pascalbaljet]
- Fix: Unset
-
0.8.002 Dec 2023Release notes
Open source →What's Changed
- Enhancement: Add support for PHP 8.3 by @localheinz in #236
Full Changelog: 0.7.2...0.8.0
Release notes
Open source →For a full diff see [0.7.2...0.8.0`][0.7.2...0.8.0].
Added
- Added support for PHP 8.3 ([#236]), by [@localheinz]
-
0.7.218 Jun 2023Release notes
Open source →What's Changed
- Fix: Throw
LogicExceptionwhen attempting to getNodefrom emptyNodeBuilderby @localheinz in #209
Full Changelog: 0.7.1...0.7.2
Release notes
Open source →For a full diff see [0.7.1...0.7.2`][0.7.1...0.7.2].
Fixed
- Started throwing a
LogicExceptionwhen attempting to get aNodefrom an emptyNodeBuilder([#209]), by [@localheinz]
- Fix: Throw
-
0.7.124 Feb 2023Release notes
Open source →Release notes
Open source →For a full diff see [0.7.0...0.7.1`][0.7.0...0.7.1].
Changed
- Made use of variadic parameters in
NodeBuilderInterface::leafs()andNodeBuilder::leafs()([#168]), by [@localheinz]
- Made use of variadic parameters in
-
0.7.028 Jan 2023Release notes
Open source →What's Changed
- Fix: Use
staticby @localheinz in #149 - Fix: Add return type declaration by @localheinz in #150
- Fix: Add parameter type declarations by @localheinz in #151
- Fix: Add property type declarations by @localheinz in #152
- Fix: Return empty
arrayfromgetNeighbors()when node is root by @localheinz in #153 - Fix: Return array with node from
getNeighborsAndSelf()when node is root by @localheinz in #154 - Enhancement: Run mutation tests with
infection/infectionby @localheinz in #155
Full Changelog: 0.6.0...0.7.0
Release notes
Open source →For a full diff see [0.6.0...0.7.0`][0.6.0...0.7.0].
Changed
- Changed return type declaration of
NodeInterface::root()fromselftostatic([#149]), by [@localheinz] - Added a missing return type declaration to
NodeInterface::getSize()([#150]), by [@localheinz] - Added parameter type declarations ([#151]), by [@localheinz]
- Added property type declarations ([#152]), by [@localheinz]
Fixed
- Returned empty array from
Node::getNeigbors()when node is root ([#153]), by [@localheinz] - Returned array with node only from
Node::getNeigborsAndSelf()when node is root ([#154]), by [@localheinz]
- Fix: Use
-
0.6.027 Jan 2023Release notes
Open source →What's Changed
- composer(deps-dev): Bump ergebnis/license from 1.1.0 to 2.1.0 by @dependabot in #139
- composer(deps-dev): Bump ergebnis/composer-normalize from 2.19.0 to 2.29.0 by @dependabot in #142
- composer(deps-dev): Bump phpunit/phpunit from 8.5.32 to 9.5.28 by @dependabot in #140
- github-actions(deps): Bump shivammathur/setup-php from 2.23.0 to 2.24.0 by @dependabot in #144
- composer(deps-dev): Bump vimeo/psalm from 4.30.0 to 5.6.0 by @dependabot in #145
- composer(deps-dev): Bump ergebnis/php-cs-fixer-config from 2.14.0 to 5.2.0 by @dependabot in #143
- Enhancement: Run dependency analysis with
maglnet/composer-require-checkerby @localheinz in #146 - Fix: Add
getSize()toNodeInterfaceby @localheinz in #147 - Fix: Add
root()toNodeInterfaceby @localheinz in #148 - Fix: Add return type declarations by @localheinz in #113
Full Changelog: 0.5.0...0.6.0
Release notes
Open source →For a full diff see [0.5.0...0.6.0`][0.5.0...0.6.0].
Changed
- Added return type declarations ([#113]), by [@localheinz]
- Added
getSize()toNodeInterface([#147]), by [@localheinz] - Added
root()toNodeInterface([#148]), by [@localheinz]
-
0.5.026 Jan 2023Release notes
Open source →What's Changed
- github-actions(deps): bump actions/checkout from 3.0.2 to 3.1.0 by @dependabot in #114
- composer(deps-dev): bump vimeo/psalm from 4.27.0 to 4.28.0 by @dependabot in #115
- composer(deps-dev): bump vimeo/psalm from 4.28.0 to 4.29.0 by @dependabot in #116
- github-actions(deps): bump actions/cache from 3.0.10 to 3.0.11 by @dependabot in #117
- github-actions(deps): Bump shivammathur/setup-php from 2.21.2 to 2.22.0 by @dependabot in #119
- composer(deps-dev): Bump phpunit/phpunit from 8.5.30 to 8.5.31 by @dependabot in #118
- composer(deps-dev): Bump psalm/plugin-phpunit from 0.17.0 to 0.18.0 by @dependabot in #120
- composer(deps-dev): Bump psalm/plugin-phpunit from 0.18.0 to 0.18.1 by @dependabot in #121
- composer(deps-dev): Bump psalm/plugin-phpunit from 0.18.1 to 0.18.3 by @dependabot in #122
- composer(deps-dev): Bump psalm/plugin-phpunit from 0.18.3 to 0.18.4 by @dependabot in #124
- github-actions(deps): Bump actions/checkout from 3.1.0 to 3.2.0 by @dependabot in #125
- github-actions(deps): Bump actions/cache from 3.0.11 to 3.2.0 by @dependabot in #126
- github-actions(deps): Bump actions/cache from 3.2.0 to 3.2.1 by @dependabot in #127
- github-actions(deps): Bump shivammathur/setup-php from 2.22.0 to 2.23.0 by @dependabot in #128
- github-actions(deps): Bump actions/cache from 3.2.1 to 3.2.2 by @dependabot in #129
- github-actions(deps): Bump actions/checkout from 3.2.0 to 3.3.0 by @dependabot in #130
- composer(deps-dev): Bump phpunit/phpunit from 8.5.31 to 8.5.32 by @dependabot in #133
- Enhancement: Run tests on PHP 8.2 by @localheinz in #135
- github-actions(deps): Bump actions/cache from 3.2.2 to 3.2.3 by @dependabot in #131
- github-actions(deps): Bump ergebnis/.github from 1.7.0 to 1.8.0 by @dependabot in #132
- Fix: Use
~operator to limit compatibility with PHP versions by @localheinz in #134 - Fix: Drop support for PHP 7.2 by @localheinz in #136
- Fix: Drop support for PHP 7.3 by @localheinz in #137
- Fix: Drop support for PHP 7.4 by @localheinz in #138
Full Changelog: 0.4.0...0.5.0
Release notes
Open source →For a full diff see [
0.4.0...0.5.0][0.4.0...0.5.0].Added
- Added support for PHP 8.2 ([#135]), by [@localheinz]
Changed
- Dropped support for PHP 7.2 ([#136]), by [@localheinz]
- Dropped support for PHP 7.3 ([#137]), by [@localheinz]
- Dropped support for PHP 7.4 ([#138]), by [@localheinz]
-
0.4.004 Oct 2022Release notes
Open source →What's Changed
- Fix: Reference by @localheinz in #82
- Fix: Simplify installation instructions by @localheinz in #83
- github-actions(deps): bump actions/checkout from 2 to 3.1.0 by @dependabot in #104
- github-actions(deps): bump actions/cache from 2 to 3.0.1 by @dependabot in #102
- Fix: Drop support for PHP 7.1 by @localheinz in #106
- composer(deps-dev): bump phpunit/phpunit from 7.5.20 to 8.5.30 by @dependabot in #107
- Enhancement: Add support for PHP 8.1 by @localheinz in #105
- composer(deps-dev): bump ergebnis/license from 1.0.0 to 1.1.0 by @dependabot in #109
- composer(deps-dev): bump ergebnis/composer-normalize from 2.8.0 to 2.19.0 by @dependabot in #108
- composer(deps-dev): bump ergebnis/php-cs-fixer-config from 2.2.1 to 2.14.0 by @dependabot in #110
- Enhancement: Require and use
vimeo/psalmby @localheinz in #111 - github-actions(deps): bump actions/cache from 3.0.9 to 3.0.10 by @dependabot in #112
- Fix PHPStan problems and be explicit by @szepeviktor in #84
New Contributors
- @szepeviktor made their first contribution in #84
Full Changelog: 0.3.1...0.4.0
Release notes
Open source →For a full diff see [
0.3.1...0.4.0][0.3.1...0.4.0].Added
- Added support for PHP 8.1 ([#105]), by [@localheinz]
Changed
- Dropped support for PHP 7.1 ([#106]), by [@localheinz]
-
0.3.127 Nov 2020Release notes
Open source →For a full diff see [
0.3.0...0.3.1][0.3.0...0.3.1].Added
- Added support for PHP 8.0 ([#79]), by [@pascalbaljet]
Changed
- Dropped support for PHP 5.4 ([#55]), by [@localheinz]
- Dropped support for PHP 5.5 ([#57]), by [@localheinz]
- Dropped support for PHP 5.6 ([#58]), by [@localheinz]
- Dropped support for PHP 7.0 ([#59]), by [@localheinz]
-
0.3.018 Jun 2020Release notes
Open source →For a full diff see [
0.2.7...0.3.0][0.2.7...0.3.0].Added
- Added support for PHP 7.1 ([#47]), by [@localheinz]
- Added support for PHP 7.2 ([#48]), by [@localheinz]
- Added support for PHP 7.3 ([#49]), by [@localheinz]
- Added support for PHP 7.4 ([#50]), by [@localheinz]
Changed
- Dropped support for HHVM ([#35]), by [@localheinz]
- Moved constructor from
NodeTraittoNode([#30]), by [@asalazar-pley]
-
v0.2.720 Aug 2015Release notes
Open source →For a full diff see [
0.2.6...0.2.7][0.2.6...0.2.7].Added
- Added pre-order and post-order visitors ([#24]), by [@localheinz]
-
v0.2.615 Jul 2015Release notes
Open source →For a full diff see [
0.2.5...0.2.6][0.2.5...0.2.6].Added
- Added a
getSize()method toNode([#17]), by [@Djuki]
- Added a
-
v0.2.510 Feb 2015Release notes
Open source →For a full diff see [
0.2.4...0.2.5][0.2.4...0.2.5].Added
- Added
getDepth()andgetHeight()methods toNode([#9]), by [@nicmart]
- Added
-
v0.2.416 Jun 2014Release notes
Open source →For a full diff see [
0.2.3...0.2.4][0.2.3...0.2.4].Added
- New accessor methods ([#6]), by [@mdwheele]
-
v0.2.321 Apr 2014Release notes
Open source →For a full diff see [
0.2.2...0.2.3][0.2.2...0.2.3].Changed
Node::getAncestors()now does not return the current node ([#4]), by [@nicmart],
-
v0.2.218 Apr 2014Release notes
Open source →For a full diff see [
0.2.1...0.2.2][0.2.1...0.2.2].Fixed
- Fixed a bug in the builder ([#3]), by [@nicmart]
-
v0.2.105 Mar 2014Release notes
Open source →For a full diff see [
0.2.0...0.2.1][0.2.0...0.2.1].Added
- Added
root()andisRoot()toNode
- Added
-
v0.2.005 Mar 2014Release notes
Open source →For a full diff see [
0.1.2...0.2.0][0.1.2...0.2.0].Changed
- Dropped support for PHP 5.3
- Extracted
NodeTraitfromNode
-
v0.1.202 Mar 2014Release notes
Open source →For a full diff see [
0.1.1...0.1.2][0.1.1...0.1.2].Added
- Added
YieldVisitor, to get the yield of the tree
- Added
-
v0.1.101 Mar 2014Release notes
Open source → -
v0.1.022 Apr 2013Nothing published for this version