做開發的人都知道,我們可以利用瀏覽器的控制檯來調試JavaScript腳本,但是對於像php這種服務端的腳本,你知道如何調試嗎?今天給大家推薦一個php調試利器,FirePHP!
以Chrome瀏覽器爲例,具體實施步驟如下:
1. 安裝FirePHP插件
在Chrome瀏覽器的應用商店中,搜索firephp關鍵詞,在出來的插件列表中,選擇第一個,將它添加到Chrome即可。如圖:
2. 獲取FirePHP類庫
僅僅安裝好FirePHP瀏覽器端的插件是不夠的,我們還需要安裝它的服務端,FirePHP類庫下載地址:http://www.firephp.org/,如圖:
下載完成後,將壓縮包中的fb.php和FirePHP.class.php兩個文件,拷貝到我們的項目中,如圖:
由於我的開發環境是ThinkPHP,所以我將它拷貝到了Library的Vendor目錄下,如圖:
3. 如何使用
FirePHP的插件和類庫都已經安裝好了,下面我們來看下如何使用它。
首先,我寫了一個FirePHP的工具類,內容如下:
<?php
namespace Common\Lib\Util;
if (!class_exists('FB')) {
vendor('FirePHP.fb');
}
class FireBug {
/**
* 將php調試信息打印到控制檯
* @param mixes $object : 待輸出的數據,類型可以是字符串、數組或者對象
* @param string $label : 標題
* @param boolean $showTrace : 是否顯示調用跟蹤信息
*/
public static function console($object, $label=null, $showTrace=false){
//開發與生產模式的開關標識,我們只在開發模式下調試腳本
if (!DEBUG_PHP) {
return;
}
try {
$label = $label ? $label : time();
\FB::log($object,$label);
if (is_array($object) || is_object($object)) {
$headers = array_keys(reset($object));
if (is_array($headers)) {
array_unshift($object,$headers);
\FB::table($label,$object);
}else{
\FB::table($label,array(array_keys($object),$object));
}
}else if(is_object($object)){
\FB::table($label,$object);
}
if ($showTrace) {
\FB::trace($label);
}
} catch (Exception $e) {
echo '請開啓輸出緩衝函數ob_start()';
}
}
}
?>
然後,在需要調試的地方,調用它,如下:
打開Chrome瀏覽器的控制檯,我們將會看到如下輸出:
是不是非常方便,通過FirePHP,我們就不需要把調試信息用echo,print_r或者日誌的形式輸出了,這樣,無形中,也加快了我們的開發進程。