<?php
return array(
// console 模式
'console'=>array(
'router' => array(
//....
),
),
// http 模式
'router' => array(
'router_class'=>null, // Zend\Mvc\Router\Http\TreeRouteStack 路由栈
'route_plugins'=>null, // Zend\Mvc\Router\RoutePluginManager 路由插件管理器
'default_params'=>array( // 默认参数
'key1'=>'key1_value',
'key2'=>'key2_value'
),
'prototypes'=>null, // 原型
'routes' => array(
'routename_Hostname' => array(
/*
例子:
访问地址:
http://www22.domain.com
那么路由的参数是:
array(
'controller'=>'Module1\Controller\Index',
'action' => 'index',
'subdomain'=>'www22',
)
*/
'type' => 'Zend\Mvc\Router\Http\Hostname', // "路由匹配器"
'priority' => null, // 当前"路由匹配器"的权重
'options' => array( // 当前"路由匹配器"的配置
'route' => ':subdomain.domain.com', // 以www+2个数字开头的域名
'constraints' => array(
'subdomain' => 'www\d{2}', // 匹配表达式 "(^www\d{2}$)"
),
'defaults' => array(
'controller' => 'Module1\Controller\Index',
'action' => 'index',
),
),
),
'modules.domain.com' => array(
/*
例子:
访问地址:
http://modules.dev.domain.com
那么路由的参数是:
array(
'controller'=>'Module1\Controller\Index',
'action' => 'index',
'4th'=>'modules',
'3rd'=>'dev',
'2nd'=>'domain',
'1st'=>'com',
)
*/
'type' => 'Zend\Mvc\Router\Http\Hostname',
'priority' => null,
'options' => array(
'route' => ':4th.[:3rd.]:2nd.:1st', // 匹配表达式 "(?P<param1>modules)(?:(?P<param2>.*?))?(?P<param3>domain)(?P<param4>com)"
'constraints' => array(
'4th' => 'modules',
'3rd' => '.*?', // 第三级可选域如:.ci, .dev 或 .test
'2nd' => 'domain',
'1st' => 'com',
),
'defaults' => array(
'controller' => 'Module1\Controller\Index',
'action' => 'index',
)
),
),
'routename_Literal' => array(
/*
例子:
访问地址:
http://www.domain.com/test
那么路由的参数是:
array(
'controller'=>'Module1\Controller\TestController',
'action' => 'index',
)
*/
'type' => 'Zend\Mvc\Router\Http\Literal',
'priority' => null,
'options' => array(
'route' => '/test', // 地址片段匹配
'defaults' => array(
'controller' => 'Module1\Controller\TestController',
'action' => 'index',
),
),
),
'routename_Literal' => array(
/*
例子:
---------
访问地址:
http://www.domain.com/
那么路由的参数是:
array(
'controller'=>'Module1\Controller\IndexController',
'action' => 'index',
)
---------
访问地址:
http://www.domain.com/blog
那么路由的参数是:
array(
'controller'=>'Module1\Controller\BlogController',
'action' => 'index',
)
---------
访问地址:
http://www.domain.com/album
那么路由的参数是:
array(
'controller'=>'Module1\Controller\AlbumController',
'action' => 'index',
)
*/
'type' => 'Zend\Mvc\Router\Http\Literal',
'priority' => null,
'options' => array(
'route' => '/', // 地址片段匹配,如"/"开头
'defaults' => array(
'controller' => 'Module1\Controller\IndexController',
'action' => 'index',
),
),
'may_terminate' => true, // 是否匹配到立刻返回
'child_routes' => array( // 如果有配置child_routes,那么要降级作为 Zend\Mvc\Router\Http\Part 的内部对象
'blog' => array(
'type' => 'literal',
'options' => array(
'route' => '/blog', // 地址片段匹配,匹配的地址是 /blog
'defaults' => array(
'controller' => 'Module1\Controller\BlogController',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
),
),
'album' => array(
'type' => 'Zend\Mvc\Router\Http\Segment',
'options' => array(
'route' => '/album[/:controller[/:action]]', // 匹配表达式 "/album(?:(?P<param1>/[a-zA-Z][a-zA-Z0-9_-]*)(?:(?P<param2>/[a-zA-Z][a-zA-Z0-9_-]*))?)?"
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Module1\Controller\AlbumController',
'action' => 'index',
),
),
),
),
),
'routename_Method' => array(
/*
例子:
访问地址:
在verb集合中的,都能匹配到
那么路由的参数是:
array(
'controller'=>'Module1\Controller\IndexController',
'action' => 'index',
)
*/
'type' => 'Zend\Mvc\Router\Http\Method',
'priority' => null,
'options' => array(
'verb' => 'POST,GET,PUT,DELETE,HEAD', // 匹配请求方式
'defaults' => array(
'controller' => 'Module1\Controller\IndexController',
'action' => 'index',
),
),
),
'routename_Query' => array(
/*
例子:
访问地址:
任何访问地址,都能匹配到
那么路由的参数是:
array(
'controller'=>'Module1\Controller\IndexController',
'action' => 'index',
)
*/
'type' => 'Zend\Mvc\Router\Http\Query',
'priority' => null,
'options' => array( // 没有匹配规则
'defaults' => array(
'controller' => 'Module1\Controller\IndexController',
'action' => 'index',
'key1' => 'key1_value',
),
),
),
'routename_Regex' => array(
/*
例子:
访问地址:
http://www.domain.com/blog/ctrl1/act1
那么路由的参数是:
array(
'controller'=>'Module1\Controller\IndexController',
'action' => 'act1',
'format' => 'html',
)
*/
'type' => 'Zend\Mvc\Router\Http\Regex',
'priority' => null,
'options' => array(
'regex'=>'/blog/(?P<controller>\w+)/(?P<action>\w+)', // 正则表达式匹配
'spec' => '/blog/%controller%/%action%',
'defaults' => array(
'controller' => 'Module1\Controller\IndexController',
'action' => 'index',
'format' => 'html',
),
),
),
'routename_Scheme' => array(
/*
例子:
访问地址:
scheme一致,都能匹配到
那么路由的参数是:
array(
'controller'=>'Module1\Controller\IndexController',
'action' => 'index',
)
*/
'type' => 'Zend\Mvc\Router\Http\Scheme',
'priority' => null,
'options' => array(
'scheme'=>'https', // Scheme匹配
'defaults' => array(
'https' => true,
),
),
),
'routename_Segment' => array(
/*
例子:
访问地址:
scheme一致,都能匹配到
那么路由的参数是:
array(
'controller'=>'Module1\Controller\IndexController',
'action' => 'index',
)
*/
'type' => 'Zend\Mvc\Router\Http\Segment',
'priority' => null,
'options' => array(
'route' => '/album[/:action][/:id]', // 匹配表达式 "/album(?:(?P<param1>/[a-zA-Z][a-zA-Z0-9_-]*))?(?:(?P<param2>/[0-9]+))?"
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Module1\Controller\AlbumController',
'action' => 'index',
),
),
),
'routename_Wildcard' => array(
/*
例子:
访问地址:
http://www.domain.com/key1=key1_value/key2=key2_value
那么路由的参数是:
array(
'controller'=>'Module1\Controller\IndexController',
'action' => 'index',
'key1' => 'key1_value',
'key2' => 'key2_value',
)
*/
'type' => 'Zend\Mvc\Router\Http\Wildcard',
'priority' => null,
'options' => array(
'param_delimiter'=>'/', // 两个参数之间的分隔符
'key_value_delimiter'=>'=', // 参数键值对的分隔符
'defaults' => array(
'controller' => 'Module1\Controller\Ctrl1',
'action' => 'index',
),
),
),
)
)
);