如何使用FireFox插件FirePHP调试PHP


Posted in PHP onJuly 23, 2013

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

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

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

如何使用FireFox插件FirePHP调试PHP

 

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

一旦你在你服务器上部署了FirePHP库,你还需要在你的代码中加入以下的代码:
require_once('FirePHPCore/fb.php');

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

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

$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控制台输出如下所示

如何使用FireFox插件FirePHP调试PHP

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

function hello() {  
   fb('Hello World!', FirePHP::TRACE);  
 }  
 function greet() {  
   hello();  
 }  
 greet(); 

产生的输出如下

如何使用FireFox插件FirePHP调试PHP

这个跟踪功能可以完美的调试更复杂的代码,让你精确的知道你的方法是在哪里被调用的。
当然,别忘了你需要在你代码发布之前移除你的调试语句。
这里还有很多FirePHP的内容没有涉及到。我只是向你简单展示一下FirePHP的API,还有很多高级的面向对象API。

PHP 相关文章推荐
用PHP写的MySQL数据库用户认证系统代码
Mar 22 PHP
PHP文件上传原理简单分析
May 29 PHP
两级联动select刷新后其值保持不变的实现方法
Jan 27 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
Sep 16 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
Laravel配合jwt使用的方法实例
Oct 25 PHP
PHP7 其他语言层面的修改
Mar 09 PHP
PHP时间格式控制符对照表分享
Jul 23 #PHP
利用curl抓取远程页面内容的示例代码
Jul 23 #PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 #PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 #PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
Jul 18 #PHP
php的数组与字符串的转换函数整理汇总
Jul 18 #PHP
使用PHP编写的SVN类
Jul 18 #PHP
You might like
PHP新手上路(八)
2006/10/09 PHP
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
javascript 面向对象编程基础:继承
2009/08/21 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
python time模块用法实例详解
2014/09/11 Python
Python实现完整的事务操作示例
2017/06/20 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
python生成lmdb格式的文件实例
2018/11/08 Python
python numpy元素的区间查找方法
2018/11/14 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
Python 私有化操作实例分析
2019/11/21 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
python可以用哪些数据库
2020/06/22 Python
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
公司业务主管岗位职责
2013/12/07 职场文书
上班打牌检讨书
2014/02/07 职场文书
爱护公物标语
2014/06/24 职场文书
小学运动会报道稿
2014/10/04 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
早上好问候语大全
2015/11/10 职场文书