roboc/menu-builder

菜单构建器

安装: 130

依赖项: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 0

开放问题: 0

类型:项目

dev-master 2016-08-03 14:28 UTC

This package is auto-updated.

Last update: 2024-09-27 10:22:13 UTC


README

轻松构建导航菜单的途径

Scrutinizer Code Quality Build Status

示例用法

创建菜单

$menu = new Menu('main-menu');

添加菜单项

$menu->item('Home')->to('/');

使用徽章

$menu->item('Inbox')->to('inbox')->badge(5);

创建子菜单

$menu->item('Reports')
    ->subMenu( function ( Menu $menu )
    {
        $menu->item('Summary')->to('/reports/summary');
        $menu->item('Detailed')->to('/reports/detailed');
    } );

渲染菜单

使用JSON渲染器

$json = ( new \Roboc\Menu\Renderer\JsonRenderer )->render( $menu );

输出

[
    {
        "title": "Home",
        "link": "\/"
    },
    {
        "title": "Inbox",
        "link": "inbox",
        "badge": {
            "value": 5,
            "attributes": []
        }
    },
    {
        "title": "Reports",
        "children": [
            {
                "title": "Summary",
                "link": "\/reports\/summary"
            },
            {
                "title": "Detailed",
                "link": "\/reports\/detailed"
            }
        ]
    }
]

使用简单的HTML渲染器

$html = ( new \Roboc\Menu\Renderer\HtmlRenderer )->render( $menu );

输出

<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>

其他

你可以创建自己的菜单渲染器或直接在你的代码中构建菜单输出