xaboy / laravel-merge-request
laravel框架 根据路由规则创建/发起虚拟请求,可以在当前请求中发起多个虚拟请求
v1.0.0
2019-02-19 03:26 UTC
Requires
- php: >=7.0
- laravel/framework: >=5.5.0
This package is auto-updated.
Last update: 2024-12-19 20:23:34 UTC
README
laravel框架 根据路由规则创建/发起虚拟请求,可以在当前请求中发起多个虚拟请求
安装
composer require xaboy/laravel-merge-request
说明
示例
路由规则
//获取验证码 Route::get('captcha', 'AuthController@captcha'); //登录并返回用户id //例: [user_id=>1] Route::post('login','AuthController@login'); //根据用户id获取用户信息 Route::get('user/info/{id}','AuthController@userInfo');
合并上面三条路由规则
use Xaboy\MergeRequest\MergeRequest; $mergeRequest = new MergeRequest([ 'loginInfo'=>'auth/loginInfo', 'login'=>[ 'path'=>'login', 'method'=>'post', 'post'=>[ 'username'=>'username', 'password'=>'password', ] ], 'userInfo'=>[ 'path'=>'user/info/{id}', 'route'=>[ 'id'=>'${mr:login.user_id}' //模板变量 ] ] ])
发起虚拟请求
$mergeData = $mergeRequest->run();
规则
path
: 路由规则/请求地址/路由别名/控制器@方法method
: 请求方式,默认为GET
route
: 路由参数post
: POST 参数,默认为当前请求的 POST 参数get
: GET 参数,默认为当前请求的 GET 参数files
: FILE 参数,默认为当前请求的 FILE 参数parameter
: 自定义参数,默认为当前请求的自定义参数
以上配置项都支持模板变量
事件
-
executing
: 发起模拟请求时触发参数:
$key
: 生成规则的 key&$mergeData
: 该请求之前已请求到的数据
-
executed
: 发起模拟请求之后触发参数:
$res
: 该请求返回的数据$key
: 生成规则的 key&$mergeData
: 该请求之前已请求到的数据
-
loaded
: 所有模拟请求结束后触发参数:
&$mergeData
: 所有模拟请求返回的数据
示例
class Observer{ public function executing($key, $mergeData){} public function executed($res, $key, $mergeData){} public function loaded($mergeData){} } //绑定 $mergeRequest->observer(Observer::class);
模板变量
${mr:key.res.data}
参考上面的示例
更多示例
路由规则
Route::post('user/update/{id}','AuthController@updateUser')->name('user.update');
规则1
[ 'path'=>'user/update/{id}', 'method'=>'post', 'route'=>[ 'id'=>1 ] ]
规则2
[ 'path'=>'AuthController@updateUser', 'method'=>'post', 'route'=>[ 'id'=>1 ] ]
规则3
[ 'path'=>'user.update', 'method'=>'post', 'route'=>[ 'id'=>1 ] ]
规则4
[ 'path'=>'user/update/1', 'method'=>'post' ]