horde / tree
Tree rendering library
v3.0.0beta2
2026-04-07 00:00 UTC
Requires
- php: ^8.1
- horde/exception: ^3 || dev-FRAMEWORK_6_0
- horde/url: ^3 || dev-FRAMEWORK_6_0
- horde/util: ^3 || dev-FRAMEWORK_6_0
- psr/http-message: ^1.1 || ^2.0
Suggests
- ext-gettext: *
This package is auto-updated.
Last update: 2026-04-07 15:50:54 UTC
README
Tree data-structure and rendering library for PHP 8.1+.
Provides both a legacy PSR-0 API (Horde_Tree) and a modern PSR-4 API (Horde\Tree)
Install
composer require horde/tree
Quick Start
use Horde\Tree\Node; use Horde\Tree\TreeBuilder; use Horde\Tree\Renderer\ResponsiveRenderer; $tree = (new TreeBuilder('nav')) ->addNode(new Node('inbox', 'Inbox', params: ['icon' => '/mail.svg', 'url' => '/mail'])) ->addNode(new Node('unread', 'Unread (5)', parentId: 'inbox')) ->build(); echo (new ResponsiveRenderer())->render($tree);
Renderers
| Renderer | Output |
|---|---|
HtmlRenderer |
Div-based HTML with row classes |
SelectRenderer |
<option> elements for <select> |
SimplehtmlRenderer |
Lightweight divs with [+]/[-] toggles |
ResponsiveRenderer |
Semantic HTML5 with <details>/<summary> and ARIA (unstable) |
Links
- Migration guide — upgrading from v2 to v3
- Example CSS — reference stylesheet for ResponsiveRenderer
- Example PHP — runnable demo page
- Changelog
License
LGPL-2.1-only — see LICENSE.