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)
composer require horde/treeuse 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);| 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) |
- Migration guide — upgrading from v2 to v3
- Example CSS — reference stylesheet for ResponsiveRenderer
- Example PHP — runnable demo page
- Changelog
LGPL-2.1-only — see LICENSE.