horde/tree

Tree rendering library

Maintainers

Package info

github.com/horde/Tree

Homepage

pkg:composer/horde/tree

Statistics

Installs: 2 121

Dependents: 6

Suggesters: 1

Stars: 1

v3.0.0beta2 2026-04-07 00:00 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

License

LGPL-2.1-only — see LICENSE.