zoukankan      html  css  js  c++  java
  • 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 IlluminateHttpRequest $request
    * @param Exception $e
    * @return IlluminateHttpResponse
    */
    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 状态码相匹配。

  • 相关阅读:
    Flex通过Blazeds利用Remoteservice与后台java消息推送
    flex 实时更新的一些方法总结
    想让领导放权,就先让领导放心(深度好文)
    教师表(TEACHER.DBF)
    Delphi中基本控件之SaveDialog控件的使用总结
    Delphi实现类的持久化保存(DFM格式)
    人事中的BP是什么意思?
    从HR 到SBP其实还有很长的一段路要走
    在DBGrid中,按ctrl+Delete不让删除,怎么实现
    delphi adoquery的post和UpdateBatch
  • 原文地址:https://www.cnblogs.com/itfenqing/p/6930484.html
Copyright © 2011-2022 走看看