TRR · 路由 · 注释路由模式
嗝嗝 7/9/2019
route
TRR
注释路由模式
贴士
本路由模式
- 默认支持中间件注册
- 跨域访问
路由@参数表
| @函数名 | 解释 | 格式 | 函数参数说明 |
|---|---|---|---|
| doc | 注释路由类/方法文档函数 | @doc('文档') | 参数说明:优雅注释文档 |
| group | 注释类路由分组注册函数 | @group('rule:规则前缀') | 参数说明:规则前缀,统一类路由规则前缀,会和方法规则拼接 |
| route | 注释方法路由注册函数 | @route('rule:规则','method:请求类型') | 参数说明 |
| middleware | 注释路由中间件注册函数 | @middleware('中间件1','中间件2',.....) | 参数说明: 只需要说写在middleware.php中注册的中间件名称,可以写多个 |
类/方法 @group / @route 注解函数说明
@group注解函数样例
<?php
/** Created By china_wangyu@aliyun.com, Data: 2019/7/3 */
namespace app\api\controller;
use app\lib\token\Token;
/**
* Class Auth
* @doc('授权类')
* @group('auth')
* @middleware('Validate')
* @package app\api\controller
*/
class Auth
{......}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@route使用样例,规则第一个字符为/,路由就会默认为根路由
例如:
<?php
/** Created By china_wangyu@aliyun.com, Data: 2019/7/3 */
namespace app\api\controller;
use app\lib\token\Token;
/**
* Class Auth
* @doc('授权类')
* @group('auth')
* @middleware('Validate')
* @package app\api\controller
*/
class Auth
{
/**
* @doc('创建授权')
* @route('/auth','post')
* @return \think\response\Json
*/
public function create()
{
return json(Token::get('100', request()->param('name')), 200);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
就等于
use think\facade\Route;
Route::rule('/auth', 'api/Auth/create','post');
1
2
2
@route使用样例,拼接类@route()中的rule和方法@route()中的rule`规则
例如:
<?php
/** Created By china_wangyu@aliyun.com, Data: 2019/7/3 */
namespace app\api\controller;
use app\lib\token\Token;
/**
* Class Auth
* @doc('授权类')
* @group('auth')
* @middleware('Validate')
* @package app\api\controller
*/
class Auth
{
/**
* @doc('创建授权')
* @route('','post')
* @return \think\response\Json
*/
public function create()
{
return json(Token::get('100', request()->param('name')), 200);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
就等于
use think\facade\Route;
Route::rule('/auth', 'api/Auth/create','post')
->middleware([])
->allowCrossDomain();
1
2
3
4
2
3
4
@middleware()注解函数
例如:
- 我在
/config/middleware.php中注册三个中间件
<?php
return [
// 默认中间件命名空间
'default_namespace' => 'app\\http\\middleware\\',
'Validate' => WangYu\Param::class,
'Validate1' => WangYu\Param::class,
'Validate2' => WangYu\Param::class,
];
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 我在注解路由下使用
@middleware
<?php
/** Created By china_wangyu@aliyun.com, Data: 2019/7/3 */
namespace app\api\controller;
use app\lib\token\Token;
/**
* Class Auth
* @doc('授权类')
* @group('auth')
* @middleware('Validate','Validate1')
* @package app\api\controller
*/
class Auth{
/**
* @doc('创建授权')
* @route('','post')
* @middleware('Validate2')
* @return \think\response\Json
*/
public function create()
{
return json(Token::get('100', request()->param('name')), 200);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
就等于:
use think\facade\Route;
Route::rule('/auth', 'api/Auth/create','post')
->middleware(['Validate','Validate1','Validate2'])
->allowCrossDomain();
1
2
3
4
2
3
4