horcrux / handleresponse
处理响应的包
v1.0
2022-10-08 18:22 UTC
Requires (Dev)
- orchestra/testbench: ^6.25
README
horcrux-handleresponse 是一个小的 Laravel 包,用于处理 Laravel 中的响应模式
安装
composer require horcrux/handleresponse
添加配置文件
php artisan vendor:publish --provider="Horcrux\Handleresponse\HandleresponseServiceProvider" --tag="config"
这将加载配置文件,其名称为 "horcruxresponse.php",位于配置目录下,文件内容如下
<?php return [ 'withstatus' => false, 'default_dirver' => 'default', 'drivers' => [ 'drivers_name' => [ 'status_key' => 'status', 'reset_success' => ['data'], 'reset_error' => ['number', 'message'] ] ] ];
withstatus 表示是否在响应中添加状态码
default_dirver 是您想要使用的默认驱动或模式名称
driver 是您想要使用的驱动数组
driver.status_key 是响应状态的键值,true/false
driver.reset_success 是成功响应中的数据数组
driver.reset_error 是失败响应中的数据数组
使用方法
1- 创建一个类似于这样的驱动
<?php return [ 'withstatus' => false, 'default_dirver' => 'profile-api', 'drivers' => [ 'profile-api' => [ 'status_key' => 'status', 'reset_success' => [ 'api_number','data'], 'reset_error' => ['error_number', 'error_message'] ] ] ];
2- 创建控制器并使用 LaravelResponse
<?php namespace App\Http\Controllers; use Horcrux\Handleresponse\Core\Traits\LaravelResponse; use Illuminate\Http\Request; class TestController extends Controller { use LaravelResponse; public function index() { return $this->senddata([152 , 'one']); } }
这将返回
{ status: true, api_number: 152, data: "one" }
如果您想要返回错误
return $this->senderror([258 , 'user is not found'])
将返回
{ status: false, error_number:258, error_message:"user is not found" }
您可以在方法中设置状态码,例如
return $this->senderror([258 , 'user is not found'],500); // response will return with 500 status code
同时,如果您想要在某些响应中更改默认驱动,您还可以设置驱动名称
return $this->senderror([258 , 'user is not found'],500 , 'other_driver');
更改驱动的方法
$this->change_driver('other_driver'); return $this->senderror([258 , 'user is not found']);
仅发送成功的方法
return $this->sendsuccess();
将返回
{status:true}
自定义函数
要自定义函数,请确保函数以 h_ 开头,例如
<?php return [ 'withstatus' => false, 'default_dirver' => 'profile-api', 'drivers' => [ 'profile-api' => [ 'status_key' => 'status', 'reset_success' => ['api_number', 'data'], 'reset_error' => ['error_number', 'error_message'], 'h_profile' => ['profile_id', 'profil_name', 'data'], ] ] ];
在控制器中使用它,如下所示
<?php namespace App\Http\Controllers; use Horcrux\Handleresponse\Core\Traits\LaravelResponse; class TestController extends Controller { // use LaravelResponse; public function index() { return $this->h_profile([252, 'youssef', [ 'one' => 'one', 'two' => 'two' ]]); //return $this->h_profile([data_array], status_code, driver_name) } }
响应将返回
{ profile_id: 252, profil_name: "youssef", data: { one: "one", two: "two" }, }