xingxia

  让PHP可以像js一样利用浏览器的控制台调试代码  ------- FirePHP(http://www.firephp.org/)

1. 安装FirePHP插件

  在Chrome浏览器的应用商店中,搜索firephp关键词,在出来的插件列表中,选择第一个,将它添加到Chrome即可

 

 

2. 获取FirePHP类库

  仅仅安装好FirePHP浏览器端的插件是不够的,我们还需要安装它的服务端,FirePHP类库下载地址:http://www.firephp.org

 

 

 

 

  下载对应语言版本的类库文件, 下载完成后,将压缩包中的fb.php和FirePHP.class.php两个文件,拷贝到我们的项目中

 

   在项目中引入 即可使用

 

3. 使用

  示例:

<?php

namespace Common\Lib\Util;

if (!class_exists(\'FB\')) {

    vendor(\'FirePHP.fb\');

}



class FireBug {

    /**

    * 将php调试信息打印到控制台

    * @param mixes $object : 待输出的数据,类型可以是字符串、数组或者对象

    * @param string $label : 标题

    * @param boolean $showTrace : 是否显示调用跟踪信息

    */

    public static function console($object, $label=null, $showTrace=false)
    {
        //开发与生产模式的开关标识,我们只在开发模式下调试脚本
        if (!DEBUG_PHP) {
            return;
        }

        try {
            $label = $label ? $label : time();
            \FB::log($object,$label);
            if (is_array($object) || is_object($object)) {
                $headers = array_keys(reset($object));
                if (is_array($headers)) {
                    array_unshift($object,$headers);
                    \FB::table($label,$object);
                }else{
                    \FB::table($label,array(array_keys($object),$object));
                }

            }else if(is_object($object)){
                \FB::table($label,$object);
            }

            if ($showTrace) {
                \FB::trace($label);
            }

        } catch (Exception $e) {
            echo \'请开启输出缓冲函数ob_start()\';
        }

    }

}

 

   

fb(\'Hello World\');
        fb(\'log message\', \FirePHP::LOG);
        fb(\'Info message\' ,\FirePHP::INFO);
        fb(\'Warn message\' ,\FirePHP::WARN);
        fb(\'Error message\',\FirePHP::ERROR);


        fb(\'Message with label\',\'Label\',\FirePHP::LOG);

        fb(array(\'key1\'=>\'val1\',
            \'key2\'=>array(array(\'v1\',\'v2\'),\'v3\')),
            \'TestArray\',\FirePHP::LOG);

        fb(\'Backtrace to here\',\FirePHP::TRACE);

        fb(array(\'2 SQL queries took 0.06 seconds\',array(
           array(\'SQL Statement\',\'Time\',\'Result\'),
           array(\'SELECT * FROM Foo\',\'0.02\',array(\'row1\',\'row2\')),
           array(\'SELECT * FROM Bar\',\'0.04\',array(\'row1\',\'row2\'))
          )),\FirePHP::TABLE);

        /* Will show only in "Server" tab for the request */
        fb(apache_request_headers(),\'RequestHeaders\',\FirePHP::DUMP);

效果展示:

  

 

 

 

是不是非常方便,通过FirePHP,我们就不需要把调试信息用echo,print_r或者日志的形式输出了

 

分类:

技术点:

相关文章: