您的位置:首页 > 运维架构

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

2016-04-02 00:00 281 查看
在针对ecshop或ectouch的二次开发中开启调试模式可以大大增加开发效率,开启方法如下:
1、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查询日志

2、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以后废除了=&,直接使用=赋值(默认为引用赋值)。

在ecshop中我们要调试的时候经常使用

var_dump($val);

die();

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

print_r($val);

die();

但是,这样输出的内容不是很工整,因此我们想要格式化一下它,所以修改为:

echo "<pre>";

print_r($val);

echo "</pre>";

die();

这样子,我们就可以很好的查看各个变量了,但是我们不想每次都写得这么麻烦,因此我们可以封装自己的打印变量函数dump_die()

function dump_die($val)

{

echo "<pre>";

print_r($val);

echo "</pre>";

die();

}

以后当我们要查看变量的时候就可以使用这个函数来查看了,现在的问题是这个函数放在哪 里,难道我们每次都在摇调试的文件里面写入这个函数,还是每次调试的时候都引入写这个函数的文件,其实,ecshop里面有个写全局函数的位置,那就是 includes/init.php 这个文件,它是ecshop初始化的文件,我们把函数放到这里面,就可以直接在任何地方调用我们自己的打印函数了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: