使用Firebug和FirePHP調(diào)試PHP程序
如果你和我一樣,你會(huì)在開(kāi)發(fā)網(wǎng)頁(yè)項(xiàng)目時(shí)候完全無(wú)法離開(kāi)FireBug。這個(gè)小巧的"臭蟲(chóng)"是一個(gè)神奇而有用的HTML/CSS/JavaScript/Ajax調(diào)試器。但是你也許不知道這個(gè)還可以用來(lái)調(diào)試PHP,沒(méi)錯(cuò),它可以,感謝一款名為FirePHP的FireFox插件。
通過(guò)一個(gè)小小的服務(wù)端庫(kù),和這款在Firebug上的插件,你的PHP腳本能夠發(fā)送調(diào)試信息到瀏覽器,輕易的通過(guò)HTTP相應(yīng)頭編碼。一旦你設(shè)置,你可以在Fiirebug的控制臺(tái)獲得PHP腳本警告和錯(cuò)誤,就感覺(jué)像直接調(diào)試JavaScript一樣
使用這個(gè)工具,首先你需要安裝FirePHP插件。這個(gè)插件需要你已經(jīng)安裝FireBug。裝好FirePHP之后,重新打開(kāi)Firebug面板時(shí)候,你會(huì)看到新加了一個(gè)藍(lán)色的臭蟲(chóng)圖標(biāo)。點(diǎn)擊這個(gè)圖標(biāo)會(huì)出現(xiàn)一個(gè)開(kāi)啟或者關(guān)閉FirePHP的菜單。
當(dāng)然,這時(shí)候我們還無(wú)法做任何事,你還需要安裝FirePHP的服務(wù)端,點(diǎn)擊這里下載。這是一個(gè)獨(dú)立的版本,你可以手動(dòng)下載或者使用PEAR。裝后之后,你可是輕松的將這個(gè)庫(kù)加入你的代碼。它被設(shè)計(jì)了很多版本來(lái)整合入多個(gè)框架或者管理系統(tǒng),比如 WP-FirePHP plugin for WordPress 和 JFirePHP plugin for Joomla。暫時(shí)不管這些,我們將把精力集中在獨(dú)立的功能上。
一旦你在你服務(wù)器上部署了FirePHP庫(kù),你還需要在你的代碼中加入以下的代碼:
- require_once('FirePHPCore/fb.php');
這是因?yàn)镕irePHP通過(guò)HTTP頭發(fā)送記錄的數(shù)據(jù),你需要緩存你的代碼產(chǎn)生的輸出,從而來(lái)響應(yīng)頭信息從這里獲取代碼生成的內(nèi)容。這個(gè)可以通過(guò)在代碼頭部的ob_start來(lái)實(shí)現(xiàn)。
- ob_start();
當(dāng)這些步驟完成后,你可以開(kāi)始使用FirePHP了。你需要做的只是調(diào)用fb函數(shù)在任何你想要記錄的地方。同時(shí)你也可以使用一個(gè)可選的標(biāo)簽和常量去定義預(yù)定義信息,一個(gè)錯(cuò)誤,一個(gè)警告,或者一條信息。
- $var = array('a'=>'pizza', 'b'=>'cookies', 'c'=>'celery');
- fb($var);
- fb($var, "An array");
- fb($var, FirePHP::WARN);
- fb($var, FirePHP::INFO);
- fb($var, 'An array with an Error type', FirePHP::ERROR);
這些代碼將在Firebug控制臺(tái)輸出如下所示
你也可以使用FirePHP來(lái)跟蹤你程序的執(zhí)行情況:通過(guò)使用FirePHP::TRACE常量,你可以在 fb被調(diào)用的地方查看行數(shù)、類(lèi)名和方法名
- function hello() {
- fb('Hello World!', FirePHP::TRACE);
- }
- function greet() {
- hello();
- }
- greet();
產(chǎn)生的輸出如下
這個(gè)跟蹤功能可以***的調(diào)試更復(fù)雜的代碼,讓你精確的知道你的方法是在哪里被調(diào)用的。
當(dāng)然,別忘了你需要在你代碼發(fā)布之前移除你的調(diào)試語(yǔ)句。
這里還有很多FirePHP的內(nèi)容沒(méi)有涉及到。我只是向你簡(jiǎn)單展示一下FirePHP的API,還有很多高級(jí)的面向?qū)ο驛PI。你可以獲得更多相關(guān)內(nèi)容在 FirePHP site,要記得看它哦~
作者:Louis Simoneau
原文鏈接:http://www.sitepoint.com/blogs/2010/02/09/debug-php-firebug-firephp
譯者:alswl
【編輯推薦】