ngen/zf2navigation

Zend Framework 2 的动态导航系统

dev-master 2015-01-27 02:45 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:47:37 UTC


README

Zend Framework 2 的动态导航系统。

简介

Zend Framework 2 的导航组件采用了一种简单的方法。它要么使用配置文件中的菜单数组定义,要么使用类似的数据的 XML 文件来渲染或生成菜单。然而,在网络上最流行的方法是从数据库中生成或获取菜单项,并通过可管理的界面进行管理。所有流行的 CMS,如 WordPress、Joomla 都有这个功能,但是构建具有复杂层次结构的菜单会对任何应用程序产生巨大的性能负担。Zend Framework 2 的导航组件正是出于这个原因使用静态链接定义。

互联网上大多数解决方案都提供了在启动时获取菜单列表的方法,但如我之前提到的,这会带来巨大的性能负担。然而,这个库提供了数据库管理的导航系统选项,以及通过点击按钮生成导航配置文件来消除性能负担。

需求

特性

  • 无需每次创建新菜单时都创建导航工厂文件,即可创建新的导航容器。
  • 具有各种功能以创建新的容器作为“导航菜单”,并动态地向它们添加各种页面或链接的导航管理系统。
  • 每个菜单的三个模式:菜单、导航栏和网站地图。您可以选择根据需要选择哪些链接出现在哪里。
  • 在简单模式下创建导航页面,仅直接提供链接,或进入高级模式并添加所有技术细节,如路由及其参数、目标、位置等。
  • 这些菜单和链接的管理系统,具有完整的 CRUD 功能,包括启用和禁用它们。
  • 可选配置,可以直接将导航系统嵌入到管理路由中。
  • 为所有菜单生成导航工厂和导航配置。
  • 支持 ZF2 的 NavigationPage 对象所有属性的完整功能的数据库表。

安装

主要设置

使用 composer

  1. 在您的 composer.json 中添加此项目和 ZfcBase

    "require": {
        "ngen/zf2navigation": "dev-master",
    }
  2. 现在运行命令下载 ZfcUser

    $ php composer.phar update

通过克隆项目

  1. 通过将其克隆到 ./vendor/ 中来安装 ZF2Navigation ZF2 模块。
  2. 将此项目克隆到您的 ./vendor/ 目录中。

安装后

  1. 在您的 application.config.php 文件中启用它。

    <?php
    return array(
        'modules' => array(
            // ...
            'ZfcBase',
            'nGen\Zfc',
    		'nGen\Zf2Entity',
            'nGen\Zf2Navigation',
    	    'TwbBundle',
        ),
        // ...
    );
  2. 然后导入位于 ./vendor/ngen/zf2navigation/data/schema.sql(如果您使用 Composer 安装)或 ./vendor/zf2navigation/data/schema.sql 的 SQL 模式。

  3. nav.global.phpnavigation 文件夹从 ./vendor/ngen/zf2navigation/config 目录复制到 config/autoload 目录,并赋予它 777 权限。

  4. zf2navigation.default.global.php.distzf2navigation.admin.global.php.dist./vendor/ngen/zf2navigation/config 目录复制到 config/autoload 目录,并从文件末尾删除 .dist

    • zf2navigation.admin.global.php.dist:它包含路由配置,您可以使用它直接将导航管理系统嵌入到管理路由中。
    • zf2navigation.admin.global.php.dist:它包含默认路由配置。
  5. 最后,它应该有一个正常工作的数据库连接来开始创建和添加菜单。请继续配置数据库适配器。

  6. 我们已经准备好了,导航到 project/path/navigation/project/path/admin/navigation,具体取决于你使用的配置。

作者

Starx

项目网站