<?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',
),
),
),
)
)
);

ZendFramework-2.4 源代码 - 路由(类图)的更多相关文章

  1. PowerDesigner(八)-面向对象模型(用例图,序列图,类图,生成Java源代码及Java源代码生成类图)(转)

    面向对象模型 面向对象模型是利用UML(统一建模语言)的图形来描述系统结构的模型,它从不同角度实现系统的工作状态.这些图形有助于用户,管理人员,系统分析人员,开发人员,测试人员和其他人员之间进行信息交 ...

  2. 八、面向对象模型(用例图,序列图,类图,生成Java源代码及Java源代码生成类图)

    面向对象模型 面向对象模型是利用UML(统一建模语言)的图形来描述系统结构的模型,它从不同角度实现系统的工作状态.这些图形有助于用户,管理人员,系统分析人员,开发人员,测试人员和其他人员之间进行信息交 ...

  3. ZendFramework-2.4 源代码 - ViewManager类图

  4. [转]看懂UML类图

    这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码 ...

  5. 【PowerDesigner】【10】绘制类图

    前言:我感觉我也是一知半解,参考博客的内容会比我的文章更有帮助 用途:描述项目中类与类的关系(即描述java文件) 正文: 1,新建oomFile→New Model→Model types→Obje ...

  6. Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

    目录 1.安装&破解Rational Rose 2003 1.1 安装Rose 2003 1.2 破解Rose 2003 1.3运行出错“没有找到suite objects.dl” 2. Ra ...

  7. Rational Rose 2003 逆向工程转换C++源代码成UML类图

    主要介绍用户如何使用Rose的逆向工程生成UML模型,并用来进行C++代码的结构分析. Rational Rose可以支持标准C++和Visual C++的模型到代码的转换以及逆向工程.下面将详细地说 ...

  8. [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图

    [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...

  9. UML——在Visual Studio 2013/2015中设计UML类图

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

  10. intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理

    之前写过一篇IntelliJ IDEA 13试用手记,idea还有很多高大上的功能,易用性几乎能与vs.net媲美,反正我自从改用idea后,再也没开过eclipse,今天来看几个高级功能: 一.与J ...

随机推荐

  1. Java文件与io——复制文件和转换流

    字节流与字符流的区别 在所有的流操作里,字节永远是最基础的.任何基于字节的操作都是正确的.无论是文本文件还是二进制的文件. 如果确认流里面只有可打印的字符,包括英文的和各种国家的文字,也包括中文,那么 ...

  2. Maven的学习资料收集--(六) 构建Hibernate项目

    前面我们使用Maven构建了Struts2项目,这里我们来试一下Hibernate项目: 这里的例子,大体框架应该是正确的,但是,对于Maven的很多约定都没有掌握,估计包的命名都不是非常好,等以后, ...

  3. Mercurial(HG) Windows+Eclipse安装、配置、使用

    Mercurial(HG) Windows客户端安装 Mercurial(HG): http://mercurial.selenic.com/ Windows客户端下载:http://mercuria ...

  4. 给浏览器绑定鼠标滚动事件(兼容FireFox)

    var bs = new Browser(); if(bs.userBrowser() == 'firefox'){ document.body.addEventListener("DOMM ...

  5. 检查python以及django是否安装配置成功

    首先说明下,我使用pycharm作为开发的IDE,在第一次创建django项目的时候,会自动安装django包的.(网上也有很多单独安装的方法),环境变量配置成功后,就是用下面的方法检测安装成功与否. ...

  6. 让我们把KBEngine玩坏吧!如何定制我们自己的C++函数(一)

    为什么不更新kbe warring的代码解读了,因为在我看来那个demo讲完了实体就没东西可讲了,如果专心的看官方文档和PPT的话demo的代码后面没任何难点了已经,单纯的复制黏贴代码实在太过无聊.程 ...

  7. erlang通讯解析浮点数的一些问题

    这两天我弟弟遇到一个比较有意思的问题.他在前端协定数据协议的时候用到了float和double,所以他想问float和double在erlang后端中是如何解析的.我之前写协议也很少用到浮点数,所以也 ...

  8. VMware Workstation Pro 14注册码,亲测可用

    ** VMware Workstation Pro 14注册码 ** 作者网上搜集整理 作者使用的密钥是: AC5XK-0ZD4H-088HP-9NQZV-ZG2R4 亲测可用 以下密钥未测试 CG5 ...

  9. css3动画-加载中...

    写几个简单的加载中动画吧. 像前面三种都是相当于几个不同的点轮流来播放同一动画:变大变小.css3里面有一个用于尺度变换的方法:scale(x,y):定义 2D 缩放转换,改变元素的宽度和高度. 第四 ...

  10. Payoneer个人账户注册申请教程

    1)照牛排于2013年末写的<免费申请Payoneer万事达预付卡+美国银行账号教程>非常详尽,网友纷纷转载,但生命在于折腾,Payoneer官网几经改版,自2015年3月推出无卡账户以来 ...