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

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


转载于:https://my.oschina.net/u/1260221/blog/651683

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值