使用Firebug和FirePHP调试PHP程序

开发 前端
如果你和我一样,你会在开发网页项目时候完全无法离开FireBug。这个小巧的"臭虫"是一个神奇而有用的HTML/CSS/JavaScript/Ajax调试器。但是你也许不知道这个还可以用来调试PHP,没错,它可以,感谢一款名为FirePHP的FireFox插件。

 

 

如果你和我一样,你会在开发网页项目时候完全无法离开FireBug。这个小巧的"臭虫"是一个神奇而有用的HTML/CSS/JavaScript/Ajax调试器。但是你也许不知道这个还可以用来调试PHP,没错,它可以,感谢一款名为FirePHP的FireFox插件。
 

通过一个小小的服务端库,和这款在Firebug上的插件,你的PHP脚本能够发送调试信息到浏览器,轻易的通过HTTP相应头编码。一旦你设置,你可以在Fiirebug的控制台获得PHP脚本警告和错误,就感觉像直接调试JavaScript一样

使用这个工具,首先你需要安装FirePHP插件。这个插件需要你已经安装FireBug。装好FirePHP之后,重新打开Firebug面板时候,你会看到新加了一个蓝色的臭虫图标。点击这个图标会出现一个开启或者关闭FirePHP的菜单。

 FirePHP Menu

 当然,这时候我们还无法做任何事,你还需要安装FirePHP的服务端,点击这里下载。这是一个独立的版本,你可以手动下载或者使用PEAR。装后之后,你可是轻松的将这个库加入你的代码。它被设计了很多版本来整合入多个框架或者管理系统,比如 WP-FirePHP plugin for WordPress 和 JFirePHP plugin for Joomla。暂时不管这些,我们将把精力集中在独立的功能上。

一旦你在你服务器上部署了FirePHP库,你还需要在你的代码中加入以下的代码:

  1. require_once('FirePHPCore/fb.php'); 

这是因为FirePHP通过HTTP头发送记录的数据,你需要缓存你的代码产生的输出,从而来响应头信息从这里获取代码生成的内容。这个可以通过在代码头部的ob_start来实现。

  1. ob_start(); 

当这些步骤完成后,你可以开始使用FirePHP了。你需要做的只是调用fb函数在任何你想要记录的地方。同时你也可以使用一个可选的标签和常量去定义预定义信息,一个错误,一个警告,或者一条信息。

  1. $var = array('a'=>'pizza''b'=>'cookies''c'=>'celery');   
  2. fb($var);   
  3. fb($var"An array");   
  4. fb($var, FirePHP::WARN);   
  5. fb($var, FirePHP::INFO);   
  6. fb($var'An array with an Error type', FirePHP::ERROR);  

这些代码将在Firebug控制台输出如下所示

 FirePHP Console Output

 你也可以使用FirePHP来跟踪你程序的执行情况:通过使用FirePHP::TRACE常量,你可以在 fb被调用的地方查看行数、类名和方法名

  1. function hello() {   
  2.   fb('Hello World!', FirePHP::TRACE);   
  3. }   
  4. function greet() {   
  5.   hello();   
  6. }   
  7. greet();  

产生的输出如下

 FirePHP Trace Output

 这个跟踪功能可以***的调试更复杂的代码,让你精确的知道你的方法是在哪里被调用的。

当然,别忘了你需要在你代码发布之前移除你的调试语句。

这里还有很多FirePHP的内容没有涉及到。我只是向你简单展示一下FirePHP的API,还有很多高级的面向对象API。你可以获得更多相关内容在 FirePHP site,要记得看它哦~

作者:Louis Simoneau

原文链接:http://www.sitepoint.com/blogs/2010/02/09/debug-php-firebug-firephp

译者:alswl

【编辑推荐】

  1. 10款Firefox插件帮助Web开发者事半功倍
  2. 手把手教你快速开发新浪微博的Firefox插件
  3. Web开发者可能不知道的12个Firebug技巧
  4. 乱评PHP框架难成大器的三大主因
  5. 双剑合璧 PHP+MySQL的***实践
责任编辑:陈贻新 来源: 译言网
相关推荐

2010-03-02 10:31:07

FirePHP调试

2010-09-10 14:48:05

2009-05-27 14:31:53

NetBeansEclipsPHP

2009-05-12 13:54:59

WEBFirebugconsole

2009-06-03 14:42:21

Eclipse调试调试Java程序

2011-08-22 09:59:16

2010-03-05 10:31:24

Ubuntu PHP

2020-07-10 16:52:43

DelveGo程序开源

2011-12-05 13:52:00

PHP

2023-05-05 07:16:07

2010-08-06 13:43:45

Flex调试

2013-04-10 09:46:29

EclipseJava

2011-11-24 21:12:44

ibmdw

2017-02-06 18:42:37

Linuxgdb程序

2009-08-27 11:55:33

ibmdwPHP

2015-05-26 10:51:43

阿里云ACE阿里云PHP

2011-11-30 21:56:31

ibmdwXPathPHP

2012-02-20 14:41:30

JavaPlay Framew

2009-11-16 16:59:03

PHP构造函数

2010-09-02 15:45:18

PHP函数echo
点赞
收藏

51CTO技术栈公众号