Laravel 之道第十一章:异常处理机制 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

[Laravel 之道第十一章:异常处理机制 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区]

导语

这一章我们来介绍一下 异常处理的引导类 Illuminate\Foundation\Bootstrap\HandleExceptions

如图:

[file

](https://lccdn.phphub.org/uploads/images/201809/27/27709/V7jxdERNTg.png?imageView2/2/w/1240/h/0)

这个类的功能:是替换 PHP 系统默认报错信息提示的处理函数,我们在 Laravel 出现报错时,看到的界面就是通过这里进行更换的。

正式介绍

先贴代码 Illuminate\Foundation\Bootstrap\HandleExceptions 类的 bootstrap 方法

public function bootstrap(Application $app)
{
    $this->app = $app;

    error_reporting(-1);

    set_error_handler([$this, 'handleError']);

    set_exception_handler([$this, 'handleException']);

    register_shutdown_function([$this, 'handleShutdown']);

    if (! $app->environment('testing')) {
        ini_set('display_errors', 'Off');
    }
}
  • 第一个 $this->app = $app; 给当前对象的 app 属性赋值,记录容器对象
  • 第二个 error_reporting(-1);:设置报告所有 PHP 错误 ;具体 error_reporting 方法。。。看这里
  • 第三个 set_error_handler([$this, 'handleError']);:将当前对象的 handleError 方法设置为错误处理函数,替换掉系统默认的处理函数;具体 set_error_handler 方法。。。看这里
  • 第四个 set_exception_handler([$this, 'handleException']);:将当前对象的 handleException 方法设置为异常处理函数,替换掉系统默认的处理函数;具体 set_exception_handler 方法。。。看这里
  • 第五个 register_shutdown_function([$this, 'handleShutdown']);:将当前对象的 handleShutdown 方法设置为 PHP 中止时执行的函数;具体 register_shutdown_function 方法。。。看这里
  • 第六个
if (! $app->environment('testing')) {
    ini_set('display_errors', 'Off');
}

检测当前是否是 testing 运行环境,是则默认为 PHP 的错误显示。如果不是 testing 环境则关闭错误显示。

laravel framework

我们是一群被时空压迫的孩子。 ---- 爱因斯坦


Original url: Access

Created at: 2018-10-10 15:31:21

Category: default

Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论