如何在ecshop和ectouch中开启调试模式

在针对ecshop或ectouch的二次开发中开启调试模式能够大大增长开发效率,开启方法以下:
一、ectouch中开启调试模式

在\mobile\include\Convention.php中找到'DEBUG'=> false,修改成'DEBUG'=> true,。这步完成只是可以显示页面错误信息,若须要禁用缓存,则须要在\mobile\include\EcTouch.php中 添加defined('DEBUG_MODE') or define('DEBUG_MODE',2);

    禁用缓存
    写入错误日志(\mobile\data\log.txt)
    写入SQL查询日志

二、ecshop中开启调试模式

在/data/config.php添加代码define('DEBUG_MODE',7);,参数以下:

    禁用
    在页面中显示全部错误
    禁用Smarty模板缓存
    使用lib.debug.php类
    写入SQL查询日志

如上参数为7时, 7=4+2+1,即在页面中显示全部错误、禁用缓存及使用debug类。

在使用debug类是可能遇到Deprecated:Assigning the return value of new by reference is deprecated in D:\**\**\includes\lib.debug.php on line 303错误,即按照提示在\includes\lib.debug.php文件中303行找到代码:

     $pa = &new Print_a_class;

去掉&,改成以下代码便可:

     $pa = new Print_a_class;

缘由是 php5.3之后废除了=&,直接使用=赋值(默认为引用赋值)。php

在ecshop中咱们要调试的时候常常使用缓存

var_dump($val);函数

die();spa

来输出查看变量。可是当变量过多的时候,就会显示不全,这时候咱们会考虑使用print_rdebug


print_r($val);调试

die();日志

可是,这样输出的内容不是很工整,所以咱们想要格式化一下它,因此修改成:开发


echo "<pre>";it

print_r($val);io

echo "</pre>";

die();

这样子,咱们就能够很好的查看各个变量了,可是咱们不想每次都写得这么麻烦,所以咱们能够封装本身的打印变量函数dump_die()


function dump_die($val)

{

echo "<pre>";

print_r($val);

echo "</pre>";

die();

}


之后当咱们要查看变量的时候就可使用这个函数来查看了,如今的问题是这个函数放在哪 里,难道咱们每次都在摇调试的文件里面写入这个函数,仍是每次调试的时候都引入写这个函数的文件,其实,ecshop里面有个写全局函数的位置,那就是 includes/init.php 这个文件,它是ecshop初始化的文件,咱们把函数放到这里面,就能够直接在任何地方调用咱们本身的打印函数了。

相关文章
相关标签/搜索