depa/middleware-navigation

中间件导航是一个PSR-15中间件,为Zend Expressive应用程序提供导航功能

v0.2.7.2 2020-02-19 13:30 UTC

README

Software License StyleCI Coverage Status

安装

运行以下命令来安装此库

$ composer require depa/middleware-navigation

文档

安装模块后,您必须将导航中间件实现到您的管道中,因此您基本上在RouteMiddleware上方添加此行

     $app->pipe(depa\NavigationMiddleware\Middleware\NavigationMiddleware::class);

要创建导航,请使用config文件夹中的navigation.global.php(将其放入config\autoload中)作为基本设置

菜单项的基本结构必须看起来像这样

'{navigation_Name}' => [
    'route' => '{route_name}', //route-name which is set in routes.php
]

如果您想为菜单项添加属性(到ul元素),请这样做

'{navigation_Name}' => [
    'attributes' => [...], //possibilitys in attributes-table described (at the bottom of the doc)
]

如果您想为菜单项添加链接属性(到a元素),请这样做

'{navigation_Name}' => [
    'linkAttributes' => [...], //possibilitys in link-attributes-table described (at the bottom of the doc)
]

如果您想为菜单项添加子项,请这样做(您可以使用任意数量的子项)

'{navigation_Name}' => [
    'childs' => [...], //build the same as a normal menu-item
]

如果您想强制链接方向到某个项,请添加此内容

'{navigation_Name}' => [
    'uri' => '{https://www.designpark.de}',
]

包含任何给定示例的菜单项可能看起来像这样

'{navigation_Name}' => [
    'route' => '{route_name}',
    'uri' => '{https://www.designpark.de}',
    'attributes' => [
        'id' => '{some_id}',
        'class' => ['{class1} {class2}'],
    ],
    'linkAttributes' => [
        'id' => '{some_id}',
        'class' => '{class_1} {class2}',
    ],
    'childs' => [
        '{childNavigation_Name}' => [
            'route' => '{route_name}',
            'uri' => '{https://www.designpark.de}',
            'attributes' => [],
            'linkAttributes' => [],
            'childs' => [],
        ]
    ]
]

上述示例将输出以下HTML

<ul>
    <li id="{some_id} class="{class1 class2} first last">
        <a href="{https://www.designpark.de}">{navigationName}</a>
        <ul class="menu_level_1">
            <li class="first last">
                <a href="{https://www.designpark.de}">{childNavigationName}</a>
            </li>
        </ul>
    </li>
</ul>

这将看起来像这样

  • {navigationName}
    • {childNavigationName}

您可以使用的属性及其功能


您可以使用的链接属性及其功能

我们没有列出每个链接/属性,请参阅knpLabs/KnpMenu获取更多信息!

鸣谢

此包受到Zend Framework的启发。它由designpark开发。

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件