温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ecshop调试模式参数DEBUG_MODE怎么用

发布时间:2021-10-21 11:26:13 来源:亿速云 阅读:214 作者:小新 栏目:开发技术

小编给大家分享一下ecshop调试模式参数DEBUG_MODE怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

找到ecshop源码根目录下的data/config.php文件,在文件尾部加入:

define('DEBUG_MODE', 0);

其中参数如下,如果要配置多个参数,则写相加的值

0 //禁用调试调试

1 //显示所有错误

2 //禁用Smarty缓存

4 //使用includes/lib.debug.php

8 //记录查询的SQL到data目录下以mysql_query_开头的文件

方便开发调式,显示所有的错误信息和禁用SMARTY缓存。

define('DEBUG_MODE', 3); // 3=1+2

各参数原理说明

1)禁用调试模式,不显示错误信息

if (defined('DEBUG_MODE') == false)
{
    define('DEBUG_MODE', 0);
}

默认设置为关闭错误和不记录错误日志,启用smarty缓存,生产环境使用。

2)显示所有错误信息

在includes/init.php文件最后找到:

if ((DEBUG_MODE & 1) == 1)
{
    error_reporting(E_ALL);
}
else
{
    error_reporting(E_ALL ^ (E_NOTICE | E_WARNING)); 
}

如果位运算成立,则开启全部错误信息,不成立则天启除E_NOTICE、E_WARNING级别外的全部错误信息

3)禁用Smarty缓存

在前台功能php文件中,如index.php、goods.php、category.php等,都有:

if ((DEBUG_MODE & 2) != 2) {
    $smarty->caching = true;
}

如果位运算条件成立,则开启smarty的缓存。

4)使用includes/lib.debug.php来调试

if ((DEBUG_MODE & 4) == 4)
{
    include(ROOT_PATH . 'includes/lib.debug.php');
}

如果位运算条件成立,则引入文件lib_debug.php来调试错误信息。

5)记录查询的SQL到指定文件中

在includes/cls_mysql.php文件query方法中

if (defined('DEBUG_MODE') && (DEBUG_MODE & 8) == 8)
{
    $logfilename = $this->root_path . DATA_DIR . 
                   '/mysql_query_' . $this->dbhash . '_' . date('Y_m_d') . '.log';
    $str = $sql . "\n\n";

    if (PHP_VERSION >= '5.0')
    {
        file_put_contents($logfilename, $str, FILE_APPEND);
    }
    else
    {
        $fp = @fopen($logfilename, 'ab+');
        if ($fp)
        {
            fwrite($fp, $str);
            fclose($fp);
        }
    }
}

条件成立,SQL查询语句将会追加写入到data/目录下,日志文件名由$logfilename定义。

以上是“ecshop调试模式参数DEBUG_MODE怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI