lavarel 响应

网友投稿 585 2022-05-29

宏的概念

计算机里的宏是批量处理的意思。比如我们在进行文本编辑的时候,打错字会有回退的功能——control+z;但是这是我们的键盘操作,计算机在进行处理的时候是不能理解的,他必须对最近两次操作进行比对,然后撤销最近一次操作的修改,然后展示文本。计算机虽然不理解control+z是什么意思,但是一定有一个预定义是在他遇到control+z的时候进行上述的操作。这种根据预定义的规则对频繁使用的一系列命令和序列转换成对应的输出(面对计算机)的定义叫做叫做宏。这种替换一般都在预编译的时候进行,称为宏展开;其实windows的图形界面交互就是频繁的使用宏,进行一系列的计算机操作,这一点类似封装,对频繁使用的操作封装成函数,使用时直接输入简短的函数名和参数,服务器就自动完成一些列的操作;

lavarel 的响应宏

在编程的过程中可能经常用到一些特定的响应,这时候我们需要自定义响应宏把这些频繁的操作封装起来,再次使用的时候直接调用;

(1)需要在\App\Providers 文件夹下新建一个服务提供者类似ResponseServiceProvider:

namespace App\Providers;

use Illuminate\Support\Facades\Response;

use Illuminate\Support\ServiceProvider;

class ResponseServiceProvider extends ServiceProvider

{

/**

* Perform post-registration booting of services.

*

* @return void

*/

public function boot()

{

Response::macro('upper', function ($value) {

return Response::make(strtoupper($value));

});

}

1

2

3

4

5

lavarel 响应宏

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

(2)macro方法接受的第一个参数就是定义的响应名称,第二个参数是一个闭包函数,响应宏的闭包在 ResponseFactory 实现类或辅助函数 response 中调用宏名称的时候被执行:

Route::get('upper/response', function() {

return response()->upper('ppsty');

});

1

2

3

4

这样返回的响应就是响应宏处理后的结果;

3.如果我们在与前端的交互种需要特定的响应数据,

比如json格式的数据:

{'isError'=>true,'isSuccess'=>false,'error'=>$error,'code'=> $code,'data'=>[],}

(1)这样我们就需要对响应进行格式封装:

namespace App\Providers;

use Illuminate\Support\Facades\Response;

use App\Services\AjaxResponse;

use Illuminate\Support\ServiceProvider;

class ResponseServiceProvider extends ServiceProvider

{

/**

* Perform post-registration booting of services.

*

* @return void

*/

public function boot()

{

Response::macro('toBeJson', function ($msg = [], $code = 200, $sStatus = 200, array $xHeaders = [], $sOptions = 0) {

return response()->json(AjaxResponse::ajax($msg, $code), $sStatus, $xHeaders, $sOptions);

});

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

(2)对格式的操作需要新建一个AjaxResponse,把对格式的规范写到里面:

class AjaxResponse

{

public static function toBeJson($msg, $code = 400)

{

return [

'isError' => false,

'isSuccess'=> true,

'msg' => $msg,

'code' => $code,

'data' => [],

];

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

这样返回的就是规范之后的响应返回;

https://blog.csdn.net/weixin_38674371/article/details/78459277?locationNum=1&fps=1

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:fastdfs详细安装教程
下一篇:2021牛客寒假算法基础集训营2,签到题FHIJ
相关文章