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

@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

就等于

use think\facade\Route;
Route::rule('/auth', 'api/Auth/create','post');
1
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

就等于

use think\facade\Route;
Route::rule('/auth', 'api/Auth/create','post')
->middleware([])
->allowCrossDomain();
1
2
3
4

@middleware()注解函数

例如:

  1. 我在/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
  1. 我在注解路由下使用 @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

就等于:

use think\facade\Route;
Route::rule('/auth', 'api/Auth/create','post')
->middleware(['Validate','Validate1','Validate2'])
->allowCrossDomain();
1
2
3
4
Last Updated: 7/24/2019, 11:35:36 AM