Skip to content

horde/Tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

163 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Horde Tree

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.

Packages

 
 
 

Contributors

Languages