roboc / menu-builder
Menu builder
Installs: 130
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
pkg:composer/roboc/menu-builder
Requires
- php: >=5.6.0
 
Requires (Dev)
- phpunit/phpunit: ~4
 
This package is auto-updated.
Last update: 2025-10-27 12:41:14 UTC
README
Easy way to build navigation menus
Example usage
Create Menu
$menu = new Menu('main-menu');
Add menu items
$menu->item('Home')->to('/');
Use badges
$menu->item('Inbox')->to('inbox')->badge(5);
Create submenu
$menu->item('Reports') ->subMenu( function ( Menu $menu ) { $menu->item('Summary')->to('/reports/summary'); $menu->item('Detailed')->to('/reports/detailed'); } );
Render menu
Using JSON renderer
$json = ( new \Roboc\Menu\Renderer\JsonRenderer )->render( $menu );
Output:
[
    {
        "title": "Home",
        "link": "\/"
    },
    {
        "title": "Inbox",
        "link": "inbox",
        "badge": {
            "value": 5,
            "attributes": []
        }
    },
    {
        "title": "Reports",
        "children": [
            {
                "title": "Summary",
                "link": "\/reports\/summary"
            },
            {
                "title": "Detailed",
                "link": "\/reports\/detailed"
            }
        ]
    }
]
Using simple HTML renderer
$html = ( new \Roboc\Menu\Renderer\HtmlRenderer )->render( $menu );
Output:
<ul id="main-menu"> <li><a href="/">Home</a></li> <li><a href="/inbox">Inbox <span class="badge">5</span></a></li> <li>Reports <ul> <li><a href="/reports/summary">Summary</a></li> <li><a href="/reports/detailed">Detailed</a></li> </ul> </li> </ul>
Other
You can create your own menu renderer or build menu output direclty in your code