yii2.0框架的错误和异常处理机制 --- 源码解读

在应用开发中,错误和异常处理机制是一块比较重要的模块。yii框架有专门的模块来进行错误和异常处理,本文尝试从yii2.0的源码出发,对yii框架的错误和异常处理机制做一个说明。

yii2.0中,错误和异常处理最先接触到的就是 frontend/config/main.php 中的 component中的一项配置 :

'errorHandler' => ['errorAction'=>'site/error']

我们先记下这个配置,然后来看看yii框架的启动过程以及错误和异常处理在yii框架中的注册过程。

yii框架的入口页面只有一个: /web/index.php, 所有的访问都会经过nginx重写到这个脚本上(静态文件除外)。

该文件的内容如下:

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'dev');

require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';

$config = require __DIR__ . '/../config/web.php';

(new yii\web\Application($config))->run();

可以看出,$application是核心所在,我们来看看$application都干了些什么:

(yii\base\Application 195行)

yii\web\Application在初始化的时候,会调用基类 yii\base\Application的init函数,在init中,有这样一行代码:(第204行)

$this->registerErrorHandler($config);

该行的作用是在application中注册error和exception处理。 

    protected function registerErrorHandler(&$config)
    {
        if (YII_ENABLE_ERROR_HANDLER) {
            if (!isset($config['c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值