## 路由功能及说明
实现路由自动化,URL自动对应目录,开发人员无需再做路由指向即可完成路由自动映射。
路由配置文件:/config/domains.php
对应模块根路径:/html
## 配置(domains.php)文件说明
```
// 标记1
// admin|admin.api|www为域名前缀,前缀级数越多权重越高,‘|’符号为组合符
'admin|admin.api|www' => [
// 必须|模板路径指向,实际路径为:/html/admin/oa
'tpl' => 'admin/oa',
// 必须|来源于/config/database.php中的配置
'conn' => 'tphp',
// 可选|总布局设置,默认为public/tpl
'layout' => 'public/tpl',
// 可选, 优先级高于.env文件
'env' => [
'TPHP_USER=123',
'TPHP_USER' => 123
],
// 可选|保留原始路由配置,一般情况下不使用
'routes' => [
'get' => [
'/' => 'IndexController@index'
],
'post' => [],
'any' => []
],
// 中间件
'middleware' => [
App\Http\Middleware\Authenticate::class,
App\Http\Middleware\VerifyCsrfToken::class,
],
// 可选|标题设置
'title' => 'TPHP框架 - 快速开发',
'keywords' => 'keywords',
'description' => 'description',
// 可选| favicon.ico 图标设置,必须删除 /public/favicon.ico 文件才能生效
// 默认路径: /html/模板路徑/favicon.ico 优先,其次是 /html/favicon.ico
// 模板路徑: 'tpl' => 'admin/oa' 中的 admin/oa
'icon' => '/static/tphp/icon.png',
// 可选|URL路径前缀,如访问/tphp/home时,相当于user=tphp, menu=home,可以在根目录的_init.php中体现
// 示例文件: /html/www/demo/_init.php
// 如:'args' => '' 访问: http://demo.tphp.com/my/web
// 则:'args' => '/user/menu' 访问为: http://demo.tphp.com/tphp/home/my/web
'args' => '/user/menu',
// 和根目录_init.php文件效果一样
// 如果有多个项目功能相同时,init配置提供了很大的方便
// 示例文件: /html/www/demo/_init.php
// 文档说明路径: 模块页面 > 初始化
// _init.php 存在时 init 设置无效
'init' => My\Web\TestController::class
// 运行任意方法
// 可以是系统设置,也可以是其他
// 'title' => function() {return 'TPHP框架 - 快速开发';},
// 'hello' => function() {echo "这里一定会运行";},
// 跳转到URL路由,访问任何页面都会强制跳转
// 用于暂停网页访问或页面正在建设中
// 'go' => "error/page",
],
// 标记2
'www.api' => [
'tpl' => 'www/api',
],
// 标记3
'admin.demo' => [
'tpl' => 'demo',
],
// 全路径,包括端口
// 'admin.demo.com:8080' => [
// 'tpl' => 'demo',
// ],
```
#### 指向说明
- www.tphp.com 指向为 标记1
- www.api.com 指向为 标记2
- admin.tphp.com 指向为 标记1
- admin.demo.com 指向为 标记3
- admin.demo.tphp.com 指向为 标记3
#### 泛指向
以下指向都会匹配到:admin.demo.tphp.com
- \*.demo
- \*.demo.\*.com
- admin.\*
- \*.\*.tphp
泛指向也是域名前缀,每个 \* 号只能匹配一个字符串,如: *.tphp.com
- 不匹配 admin.demo.tphp.com
- 匹配 demo.tphp.com
- 匹配 test.tphp.com
#### 动态参数指向
```
'{a}.{b}' => [
'tpl' => '{a}/{b}',
'tpl2' => '{a}/{b}',
],
```
- 例如访问: www.tphp.com 则上面配置实际配置结果如下
```
'www.tphp' => [
'tpl' => 'www/tphp',
'tpl2' => 'www/tphp',
],
```