mxc-commons/mxc-routes

Zend Framework 2模块,根据您提供的模板配置自动生成子路由结构的路由。

dev-master 2016-06-14 02:12 UTC

This package is auto-updated.

Last update: 2024-08-29 04:08:12 UTC


README

版本 1.0.1 由Frank Hein和mxc-commons团队创建。

MxcRoutes是德国maxence business consulting gmbh通过maxence Open Source Initiative的一部分。

简介

厌倦了再次为标准控制器类编写相同的路由配置吗?那么MxcRoutes可能是您一直在等待的东西。

MxcRoutes提供了一种额外的路由类型,它根据您提供的模板自动生成子路由结构。

支持多个子路由模型,并通过路由定义选择。

要求

特性/目标

MxcRoutes的主要设计目标是通过模板定义封装控制器子路由定义。因此,模块程序员可以通过定义单个路由来设置控制器的完整子路由方案。

1. 提供通过单个路由定义配置控制器路由模型的能力

2. 允许通过名称选择多个子路由模型

在MxcRoute的defaults部分设置'child_route_model' => 'myChildRouteModelName'

3. 允许通过继承扩展子路由模型

在子路由模型定义中设置'extends' => 'myParentChildRouteName'

安装

主要设置

通过克隆项目

  1. 将此项目克隆到您的./vendor/目录。

使用composer

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

    "require": {
        "mxc-commons/mxc-routes": "dev-master"
    }
  2. 现在运行以下命令,让composer下载MxcRoutes

    $ php composer.phar update

安装后

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

    <?php
    return array(
        'modules' => array(
            // ...
            'MxcRoutes',
        ),
        // ...
    );

选项

MxcRoutes模块提供了一个选项来设置和选择子路由方案。安装MxcRoutes后,将./vendor/mxc-commons/mxc-routes/config/mxcroutes.global.php.dist复制到./config/autoload/mxcroutes.global.php,并按需设置子路由方案。

以下选项可用:

  • child_route_models - 子路由模型数组:<modelName> => array(<child_route>, ...), ... ),其中modelName是您选择的标识符,每个child_route是ZF2路由定义。

查看mxcroutes.global.php.dist以获取包含模型继承的示例配置。

注意:您可以通过复制和粘贴现有的子路由结构从您的路由配置中轻松设置子路由方案。

注意:子路由模型甚至可能包含嵌套的子路由定义。

'may_terminate' => true,
'child_routes'  => array(
	...
)

设置MxcRoute

您几乎以添加Literal路由相同的方式添加MxcRoute。只需设置type键为'mxc-route'。

                'album' => array(
                    'type' => 'mxc-route',
                    'options' => array(
                        'route' => '/album',
                        'defaults' => array(
                            'controller' => 'MxcMedia\Controller\Album',
                            'action' => 'list'
                        )
                    ),
                 ),

使用上述配置,MxcRoute将默认为名为default的子路由模型。您可以通过在路由定义的'defaults'部分指定child_route_model键来选择特定的子路由模型。

                'album' => array(
                    'type' => 'mxc-route',
                    'options' => array(
                        'route' => '/album',
                        'defaults' => array(
                            'controller' => 'MxcMedia\Controller\Album',
                            'action' => 'list'
							'child_route_model' => 'myChildRouteModelName'
                        )
                    ),
                 ),

注意:'controller''action'键是必需的,'child_route_model'是可选的。

MxcRoutes的工作原理

  1. 在启动时,MxcRoutes向RoutePluginManager注册了路由类型mxc-route的路由插件。
  2. 每当路由器找到类型为 mxc-route 的路由时,路由器就会实例化一个 MxcRoute 来处理这个路由定义。
  3. MxcRoute 本身是从 Zend\Mvc\Router\Http\Part 路由派生出来的。它为自身的路由定义创建一个文本表示,加载子路由模型,并将所有子路由的 controller 键设置为在 mxc-route 中指定的控制器。

使用场景

MxcRoute 的常见使用场景包括

  1. CRUD 路由配置

致谢

MxcRoute 吸收了 Kyle Spraggs 的 SpiffyCrud 中的 CrudRoute 实现的启发。SpiffyCrud 是一个 ZF2 模块,允许快速开发实体的 CRUD。

许可协议

MxcRoutes 采用新 BSD 许可协议发布。请参阅 license.txt