利用Discuz!内置debug方法

1. 下载此文件

function_debug.php

保存到source/function/目录下

2. 修改配置

修改 config\config_global.php,加入

$_config['debug'] = 1;

此处的值可以为1, 2, 或自定义字符串,区别请参考discuz_application.php中的以下代码

if(empty($_config['debug']) || !file_exists(libfile('function/debug'))) {
    define('DISCUZ_DEBUG', false);
    error_reporting(0);
} elseif($_config['debug'] === 1 || $_config['debug'] === 2 || !empty($_REQUEST['debug']) && $_REQUEST['debug'] === $_config['debug']) {
    define('DISCUZ_DEBUG', true);
    error_reporting(E_ERROR);
    if($_config['debug'] === 2) {
        error_reporting(E_ALL);
    }
} else {
    define('DISCUZ_DEBUG', false);
    error_reporting(0);
}

3. 插件

去掉错误控制运算符@

插件文件是include引入的(\source\admincp\admincp_plugins.php):

if(!@include(DISCUZ_ROOT.$modfile)) 

在include时,加了错误控制运算符@,这将导致插件代码中的任何错误都不会显示,而是直接给你一个白屏,故若要显示错误信息,则需要去掉此错误控制运算符@(注:仅限开发测试环境,线上环境不要去掉哈)。