工作中常常遇到一种情况,线上正在运行的系统出现非故障性问题(常常是数据方面),而在本地系统上却不容易找到问题的所在,这时就需要对线上系统进行代码级调试,往往的做法是暂时停掉线上系统使用,或者直接把调试信息赤裸裸的暴露给用户。刚刚发现了FirePHP这个好东西,可以将调试信息输出到http头信息上,这样就能在用户的眼皮底下进行调试又不会被发现。
安装:
1、通过Firefox的组件搜索,依次安装:Firebug、FirePHP;
2、下载FirePHPCore
使用:
1、开启Firebug 控制台、脚本、网络,开启FirePHP,设置FirePHP的allowed sites
2、FirePHPCore的lib包里有四个文件,可以根据php版本选择相应的文件来使用:
log
-
-
-
-
-
-
- require_once('FirePHPCore/fb.php');
-
- FB::log('HelloWorld!');
- ?>
输出:
3、FirePHPCore内置了多种输出格式和方法:
分组
-
-
-
-
-
-
- require_once('FirePHPCore/fb.php');
-
- FB::group('Test Group A');
-
- FB::log('Plain Message');
- FB::info('Info Message');
- FB::warn('Warn Message');
- FB::error('Error Message');
-
- FB::log('Message','Optional Label');
- FB::groupEnd();
- FB::group('Test Group B');
- FB::log('Hello World B');
- FB::log('Plain Message');
- FB::info('Info Message');
- FB::warn('Warn Message');
- FB::error('Error Message');
-
- FB::log('Message','Optional Label');
- FB::groupEnd();
- ?>
输出:
table
-
-
-
-
-
-
- require_once('FirePHPCore/fb.php');
-
-
- $table[] = array('Col 1 Heading','Col 2 Heading','Col 2 Heading');
- $table[] = array('Row 1 Col 1','Row 1 Col 2','Row 1 Col 2');
- $table[] = array('Row 2 Col 1','Row 2 Col 2');
- $table[] = array('Row 3 Col 1','Row 3 Col 2');
-
- FB::table('Table Label', $table);
- ?>
输出:
异常处理
-
-
-
-
-
-
- require_once('FirePHPCore/fb.php');
-
-
- class MyException extends Exception{
- public function __construct($message, $code) {
- parent::__construct($message, $code);
- }
- public function log(){
- FB::log($this->getMessage());
- }
- }
-
- try{
- echo 'MoXie';
- throw new MyException('some description',1);
- }catch(MyException $e){
- $e->log();
- }
- ?>
4、与CodeIgniter结合使用:
a、将FirePHP.class.php、fb.php移动至system/application/libraries
b、重命名:FirePHP.class.php=>Firephp.php,fb.php=>Fb.php
c、编辑这两个文件的第一行,改为:d、注释掉fb.php的第45行://require_once dirname(__FILE__).'/FirePHP.class.php';
e、编辑(或增加)config/autoload.php :$autoload['libraries'] = array("firephp", "fb");
完成!
使用:
PHP代码
- function index()
- {
- $arr = array('1','2','3','4');
- $this->fb->group('Test Group 1');
- $this->fb->log($arr);
- $this->fb->error('false1111');
- $this->fb->groupEnd();
- $this->fb->group('Test Group 2');
- $this->fb->log($arr);
- $this->fb->error('false222');
- $this->fb->groupEnd();
-
- echo '
this is a test module page!
'; - exit;
输出:
阅读(904) | 评论(0) | 转发(0) |