配置路由
<h2>文件名:router.php</h2>
<h2>文件位置:</h2>
<p><strong>路由文件根据需求可以放在以下几个位置:</strong></p>
<ul>
<li><strong>app/应用目录/router.php</strong></li>
<li><strong>app/应用目录/版本目录/common/router.php</strong></li>
<li><strong>app/应用目录/版本目录/模块目录/common/router.php</strong></li>
<li><strong>启用模块功能的情况下可以放置在:app/应用目录/版本目录/router.php</strong></li>
</ul>
<p><strong>建议<font color=red>模块路由</font>单独配置,文件放在模块的common目录下</strong>
<strong><font color=red>模块路由</font>与应用的路由一致,省略模块名的匹配</strong></p>
<pre><code><?php
return [
'PATH'=>'', // 入口不是index.php时,需要指定入口【例如:admin.php 或者rewrite时的 admin】
'/index'=>[ // 匹配路径'/index'
'ctrl'=>'home', // 指定控制器是 home.class.php
'act'=>'*', // *是通配符(相当于$_GET['a'])的值
'params'=>['id', 'code'] // 传递的参数名【按此名称和顺序解析url中的参数值】
],
'/user'=>[
'ctrl'=>'user',
'act'=>'user_*', // *是通配符:(相当于'user_' . $_GET['a'])的值
'params'=>['id', 'code']
],
'/login'=>[
'ctrl'=>'user',
'act'=>'login',
'params'=>['id'=>0, 'code'] // 【参数id默认是0】
],
'/reg'=>[
'ctrl'=>'user',
'act'=>'reg'
],
'/sets/site'=>[
'ctrl'=>'sets',
'act'=>'site',
],
'*'=>[ //以上路由都不匹配的时候
'ctrl'=>'err',
'act'=>'_400'
],
// 模块路由
'image'=>[
// 不是“/”开头,代表的是模块名,表示image模块的路由
// 这里面的内容和上面完全相同,待匹配的url不需要加模块名
// 建议将模块路由放置在所属模块的common目录内,不要写在这里
'/upload'=>[
'ctrl'=>'upload',
'act'=>'index',
]
]
];</code></pre>
<h2>路由参数</h2>
<p><strong>通过常量 <font color=red>ROUTE</font> 可以获取各路由参数,结构如下:</strong></p>
<table>
<thead>
<tr>
<th>key</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>module</td>
<td>string</td>
<td>模块(未启用模块功能,则无此参数)</td>
</tr>
<tr>
<td>ctrl</td>
<td>string</td>
<td>控制器</td>
</tr>
<tr>
<td>act</td>
<td>string</td>
<td>操作</td>
</tr>
<tr>
<td>params</td>
<td>array</td>
<td>传递的路由参数</td>
</tr>
<tr>
<td>path</td>
<td>array</td>
<td>pathinfo部分的数组结构</td>
</tr>
<tr>
<td>query</td>
<td>array</td>
<td>路由参数和$_GET参数的合集</td>
</tr>
<tr>
<td>uri</td>
<td>string</td>
<td>地址的 uri 部分</td>
</tr>
</tbody>
</table>