在针对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初始化的文件,咱们把函数放到这里面,就能够直接在任何地方调用咱们本身的打印函数了。