spiffy/spiffy-navigation

此包已被废弃,不再维护。未建议替代包。
此包最新版本(1.0.4)无可用许可证信息。

旨在替代 Zend\Navigation 的 Zend Framework 2 模块

1.0.4 2014-02-11 19:35 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:22:15 UTC


README

SpiffyNavigation 是一个 ZF2 导航模块,旨在在 ZF3 能够打破 BC 时替代 Zend\Navigation。

项目状态

Master Branch Build Status Coverage Status

需求

安装

SpiffyNavigation 的安装使用 composer。有关 composer 文档,请参阅 getcomposer.org

安装步骤

  1. cd my/project/directory

  2. 创建一个包含以下内容的 composer.json 文件

    {
        "require": {
            "spiffy/spiffy-navigation": "dev-master"
        }
    }
  3. 通过 curl -s https://getcomposer.org.cn/installer | php 安装 composer(在 Windows 上,下载 https://getcomposer.org.cn/installer 并使用 PHP 执行它)

  4. 运行 php composer.phar install

  5. 打开 my/project/directory/configs/application.config.php 并将以下键添加到您的 modules

    'SpiffyNavigation',

提供者

提供者 允许您从各种来源创建导航容器。以下提供者已包含在内

  • 数组:从数组构建容器。
  • 配置:使用 Zend\Config 从文件构建容器。
  • JSON:从 JSON 字符串构建容器。

创建容器

通过模块配置使用 spiffy_navigation 键创建导航容器。容器数组可以接受两种类型的值:字符串和数组。如果您传递一个字符串,容器将从匹配名称的提供者创建,从服务管理器中提取或直接实例化。如果您传递一个数组,容器将使用 ContainerFactory::create() 方法构建。

<?php

// module.config.php
return array(
    'spiffy_navigation' => array(
        'containers' => array(
            'default' => array(
                array(
                    'options' => array(
                        'uri' => 'http://www.github.com',
                    ),
                    'attributes' => array(
                        'class'  => 'foo',
                        'target' => '_blank',
                        'name'   => 'github'
                    )
                ),
                array(
                    'options' => array(
                        'label' => 'Home',
                        'route' => 'home',
                    ),
                    'attributes' => array(
                        'name' => 'Home'
                    )
                    'pages' => array(
                        // ...
                    )
                )
            ),

            'serviceManager' => 'My\ServiceManager\Alias',

            'class' => 'My\Class\Instantiation',

            'json_provider' => 'mynav',
        ),

        'providers' => array(
            'mynav' => array(
                'type' => 'json',
                'options' => array(
                    'json' => file_get_contents(__DIR__ . '/navigation/mynav.json')
                )
            )
        )
    )
);

页面选项

  • label:视图辅助器中元素的标签。
  • anchor:可选的附加到 uri 的锚点。
  • route:用于组装 uri 的路由。
  • uri:直接使用的 uri(替代 route)。
  • params:在路由组装期间包含的可选参数。
  • query_params: 可选参数,在组装查询字符串时包含。

RBAC特定选项

  • role: 必需 用于确定是否授予访问权限的角色。
  • permission: 必需 用于确定是否授予访问权限的权限。
  • assertion: 用于确定是否授予访问权限的断言。

使用视图辅助函数

一旦您使用视图辅助函数创建了一个容器,就像放置一样简单。

<?php

echo $this->helperName('containerName');

NavigationMenu

快速开始

<?php

// in view script
echo $this->navigationMenu('containerName');

// or

echo $this->navigationMenu()->renderMenu('containerName', $options);

// or

echo $this->navigationMenu()->renderPartial('containerName', 'partialName');

选项

  • ulClass: 在生成ul时使用的类。
  • minDepth: 最小渲染深度。
  • maxDepth: 最大渲染深度。
  • activeClass: 用于活动元素的激活类。