如何在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初始化的文件,咱們把函數放到這裏面,就能夠直接在任何地方調用咱們本身的打印函數了。

相關文章
相關標籤/搜索