PHP在瀏覽器上跟蹤調試的方法以及使用ChromePhp、FirePHP的簡單介紹
之前用ThinkPHP時發現有個 trace 函數可以跟蹤調試,感覺很有意思,網上搜索了下類似的東西,發現了 ChromePhp ,以前沒想過這樣來調試 PHP 程序,感覺非常方便,很有用。
ThinkPHP 使用的是自己生成的 HTML 隨模版一起輸出來顯示,偶爾會遇到一些莫名其妙的問題,效果不是太好,
還有一些也是類似的方法,但輸出的主要是在模版中增加 JS 代碼,調用瀏覽器的調試方法進行輸出調試
如 console.log('PHP的一些調試輸出內容');
ChromePhp 是通過header來傳輸調試內容並通過安裝 Chrome 瀏覽器的插件讀取header 信息顯示到瀏覽器調試麵板中進行查看,功能比較強大,對頁麵沒什麼太多幹擾,調試也更方便,火狐下據說也有類似的 firePhp ,不過現在不怎麼用火狐瀏覽器也沒去測試過
官網地址:
這是該開源項目的 Github 地址:
Github : https://github.com/ccampbell/chromephp
這是 Chrome 內核瀏覽器插件的安裝地址:
https://chrome.google.com/extensions/detail/noaneddfkdjfnfdakjjmocngnfkfehhd
不過老是被牆,不容打開,而且隻能是 google chrome 才能安裝,我找了老半天隻找到個 3.0 的插件
插件下載地址:
https://download.csdn.net/detail/zsjangel/7535201
可以安裝後試試 升級到現在最新的 4.1,我是這樣成功了的
3.0 的插件圖標和 4.1 的不一樣的:
下麵是4.1版本,黑色表示為開啟插件,點擊啟動
下方顯示藍色時表示啟動,可以在麵板中看到調試信息
PHP下的使用方法:
ChromePhp::log('Hello console!'); ChromePhp::group('this is group'); ChromePhp::log('Hi 神神的蝸牛!'); ChromePhp::error('something went wrong!'); ChromePhp::groupEnd(); ChromePhp::table(array(array('aa'=>'bb', 'cc'=>11), array('aa'=>'cc', 'cc'=>22)));
group 表示默認直接展開下麵的所有都是一組調試信息,一直到 groupEnd 結束,顯示效果和普通的 log 是不一樣的
若使用 groupCollapsed 則默認收縮不顯示整個 group 信息
table 的參數必須是 二維數組,否則將不顯示,數組的鍵名及字段名
下麵是效果圖:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
剛剛又試了 firefox 下的 FirePHP 插件,他們的功能都很類似,但 FirePHP 比 ChromePHP 更熱門些,也不會被牆安裝很方便,後者的 github 項目似乎一年沒有維護更新了,也可能是沒什麼可更新了的吧,不過 firefox 和 Chrome 瀏覽器比起來,後者應該使用的人更多了吧。
FirePHP 官方主頁:(下載 PHP 端類庫)
https://www.firephp.org/HQ/Install.htm
安裝插件就不用說了吧,附加組件裏麵搜索下 FirePHP 就行了很方便,必須依賴 FireBug,最好先安裝 FireBug 再安裝 FirePHP
PHP簡單測試代碼:
$fire = FirePHP::init(); $fire->log('Hello console!'); // Collapsed:true 收起該組調試信息 $fire->group('this is group', array('Collapsed'=>true)); $fire->log('Hi 神神的蝸牛!'); $fire->error('something went wrong!'); $fire->groupEnd(); $fire->table('數據表', array(array('aa'=>'bb', 'cc'=>11), array('aa'=>'cc', 'cc'=>22)));
效果:
他們的原理也都一樣,使用方式上基本上差不多的,大概就是這樣啦
最後再來一個 header 傳輸調試信心的對比:
FirePHP 在輸出時應該會判斷當前瀏覽器,非 Firefox 不會輸出 header 信息,而 ChromePHP 則未判斷都是直接輸出
最後更新:2017-04-03 07:57:12