ua1-labs/firebug

此包已被弃用,不再维护。没有建议替代包。

可展开的PHP调试面板。

2.2.0 2020-02-03 20:05 UTC

This package is auto-updated.

Last update: 2020-10-03 21:41:20 UTC


README

可展开的PHP调试面板。

FireBug的真实力量在于它可以轻松地添加到任何项目并扩展!您甚至可以创建自己的面板来跟踪您在调试过程中关心的任何数据。FireBug自带一个调试器面板。该面板允许您在应用程序的任何位置调用debugger()。所有调试器都会在FireBug面板的“调试器”部分显示完整的debug_trace以及var_dump

文档

https://ua1.us/projects/firebug/

使用Composer安装FireBug

composer require ua1-labs/firebug

启用FireBug

出于性能考虑,firebug最初是禁用的,需要启用才能使用。下面是启用方法:

$fireBug = \UA1Labs\Fire\Bug::get();
$fireBug->enable();

FireBug计时器

一旦启用FireBug,它将开始计时,报告加载您的页面和返回请求所需的时间。请注意,这些时间是在您启用FireBug时确定的。

渲染FireBug

安装FireBug后,您需要将其输出到HTML中的某个位置。

$fireBug = \UA1Labs\Fire\Bug::get();
echo $fireBug->render();

建议将FireBug放置在应用程序的页脚中。

调试器面板

如前所述,FireBug附带一个“调试器”面板。此面板允许您替换使用var_dumpdebug_trace。在您的应用程序中安装FireBug后,您只需调用debugger(mixed $value);函数,让FireBug做工作。此函数可以接受任何值,并将其简单地var_dumpdebug_trace在FireBug的“调试器”面板中。

示例

debugger('debug value...');

调试器还接受一个名为exit的第二个参数。如果您决定需要退出任何进程的执行并在此执行点渲染调试面板,您可以传递true作为第二个参数。

示例

debugger('debug value...', true);

调试器面板和X-Debug覆盖

在此项目中,决定禁用x-debug覆盖以显示var_dumps。这使得在不需过多左右滚动的情况下更容易阅读调试器的完整输出。因此,如果您想启用它,请在初始化应用程序时运行以下代码。

$fireBug = \UA1Labs\Fire\Bug::get();
$debuggerPanel = $fireBug->getPanel(\UA1Labs\Fire\Bug\Panel\Debugger::ID);
$debuggerPanel->enableXDebugOverlay();

创建和注册您自己的面板

我们已经为您提供了一切,让您可以轻松创建自己的面板。

  1. 创建您自己的面板类

     namespace \UA1Labs\Fire\Bug\Panel;
    
     use \UA1Labs\Fire\Bug\Panel;
    
     class MyOwnPanel extends Panel
     {
         const ID = 'myOwnPanel';
         const NAME = 'My Own Panel';
         const TEMPLATE = '/path-to/my-own-panel.phtml';
    
         public $myName;
    
         public function __construct()
         {
             parent::__construct(self::ID, self::NAME, __DIR__ . self::TEMPLATE);
             $this->myName = 'Testy Testerson';
         }
    
         public function myInfo()
         {
             return '1 Awesome Dude, Orlando, FL, 32708';
         }
     }
    
  2. 创建面板模板文件

     <div class="my-own-panel">
         <?php echo $this->myName; ?>
         <?php echo $this->myInfo(); ?>
     </div>
    
  3. 注册您的面板

     $fireBug = Fire\Bug::get();
     $fireBug->addPanel(new \UA1Labs\Fire\Bug\Panel\MyOwnPanel());
    

只需三个简单步骤,您就成功将自定义面板添加到FireBug中!现在,让我们来了解一下它背后的工作原理。面板充当ViewModel。您添加到面板对象中的任何数据或方法也将对模板对象可用。在上面的示例面板中,您可以看到面板使用了一个名为myName的公共属性和一个名为myInfo的方法。在模板中,您可以看到我们正在输出这些值。

计时器

FireBug还附带了一个计时器,您可以使用它来检测一个过程需要多少时间。以下是使用计时器的方法

$fireBug = Fire\Bug::get();
//get a start time
$startTime = $fireBug->timer();
//get time length in milliseconds
$timeLength = $fireBug->timer($startTime);