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()中的
rule和方法
@route()中的
rule`规则
@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('','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