Laravel之加密解密/日志/异常处理及自定义错误
Posted 罗夏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel之加密解密/日志/异常处理及自定义错误相关的知识,希望对你有一定的参考价值。
一.加密解密
1.加密
Crypt::encrypt($request->secret)
2.解密
try {
$decrypted = Crypt::decrypt($encryptedValue);
} catch (DecryptException $e) {
//
}
二.日志
1.配置文件config/app.php 中的debug 配置选项控制浏览器显示的错误详情数量。默认情况下,该配置选项被设置在.env 文件中的环境变量APP_DEBUG 。对本地开发而言,你应该设置环境变量APP_DEBUG 值为true 。在生产环境,该值应该被设置为false 。
2.日志模式
Laravel 支持日志方法single , daily , syslog 和errorlog 。例如,如果你想要日志文件按日生成而不是生成单个文件,应该在配置文件config/app.php 中设置log 值如下:
‘log‘ => ‘daily‘
三.异常处理/自定义错误页面
1.异常处理器在App/Exceptions/Handler.php
2.report 方法
report 方法用于记录异常并将其发送给外部服务如Bugsnag 。默认情况下, report 方法只是将异常传递给异常被记录的基类,你可以随心所欲的记录异常。
例如,如果你需要以不同方式报告不同类型的异常,可使用PHP 的instanceof 比较操作符:
/** * 报告或记录异常 * * This is a great spot to send exceptions to Sentry, Bugsnag, etc. * * @param \Exception $e * @return void */ public function report(Exception $e){ if ($e instanceof CustomException) { // } return parent::report($e); }
异常处理器的$dontReport 属性包含一个不会被记录的异常类型数组,默认情况下,404 错误异常不会被写到日志文件,如果需要的话你可以添加其他异常类型到这个数组。
3.render方法
render 方法负责将给定异常转化为发送给浏览器的HTTP 响应,默认情况下,异常被传递给为你生成响应的基类。然而,你可以随心所欲地检查异常类型或者返回自定义响应:
/** * 将异常渲染到 HTTP 响应中 * * @param \Illuminate\Http\Request $request * @param \Exception $e * @return \Illuminate\Http\Response */ public function render($request, Exception $e){ if ($e instanceof CustomException) { return response()->view(‘errors.custom‘, [], 500); } // 自定义一个token错误的异常 if ($e instanceof TokenMismatchException) { return back()->withErrors(‘token错误,请重新提交‘); } return parent::render($request, $e); }
4.应用中生成异常
abort(404);
abort(403, ‘Unauthorized action.‘);
5.自定义 HTTP 错误页面
Laravel 使得返回多种HTTP 状态码的错误页面变得简单,例如,如果你想要自定义 404 错误页面,创建一个
resources/views/errors/404.blade.php 文件,给文件将会渲染程序生成的所有 404 错误。 改目录下的视图命名应该和相应的 HTTP 状态码相匹配。
以上是关于Laravel之加密解密/日志/异常处理及自定义错误的主要内容,如果未能解决你的问题,请参考以下文章