mxc-commons/ mxc-routes
Zend Framework 2模块,根据您提供的模板配置自动生成子路由结构的路由。
Requires
- php: >=5.3.3
- zendframework/zend-eventmanager: >=2.1
- zendframework/zend-modulemanager: >=2.1
- zendframework/zend-mvc: >=2.1
- zendframework/zend-servicemanager: >=2.1
- zendframework/zend-stdlib: ~2.1
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提供了一种额外的路由类型,它根据您提供的模板自动生成子路由结构。
支持多个子路由模型,并通过路由定义选择。
要求
- Zend Framework 2 (最新master)
特性/目标
MxcRoutes的主要设计目标是通过模板定义封装控制器子路由定义。因此,模块程序员可以通过定义单个路由来设置控制器的完整子路由方案。
1. 提供通过单个路由定义配置控制器路由模型的能力
2. 允许通过名称选择多个子路由模型
在MxcRoute的defaults
部分设置'child_route_model' => 'myChildRouteModelName'
。
3. 允许通过继承扩展子路由模型
在子路由模型定义中设置'extends' => 'myParentChildRouteName'
。
安装
主要设置
通过克隆项目
- 将此项目克隆到您的
./vendor/
目录。
使用composer
-
在您的composer.json中添加此项目
"require": { "mxc-commons/mxc-routes": "dev-master" }
-
现在运行以下命令,让composer下载MxcRoutes
$ php composer.phar update
安装后
-
在您的
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的工作原理
- 在启动时,MxcRoutes向RoutePluginManager注册了路由类型
mxc-route
的路由插件。 - 每当路由器找到类型为
mxc-route
的路由时,路由器就会实例化一个 MxcRoute 来处理这个路由定义。 - MxcRoute 本身是从
Zend\Mvc\Router\Http\Part
路由派生出来的。它为自身的路由定义创建一个文本表示,加载子路由模型,并将所有子路由的controller
键设置为在mxc-route
中指定的控制器。
使用场景
MxcRoute 的常见使用场景包括
- CRUD 路由配置
致谢
MxcRoute 吸收了 Kyle Spraggs 的 SpiffyCrud 中的 CrudRoute 实现的启发。SpiffyCrud 是一个 ZF2 模块,允许快速开发实体的 CRUD。
许可协议
MxcRoutes 采用新 BSD 许可协议发布。请参阅 license.txt
。