ua1-labs / firebug
可展开的PHP调试面板。
Requires
- php: >7.1.0
Requires (Dev)
- ua1-labs/firetest: 2.*
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_dump
和debug_trace
。在您的应用程序中安装FireBug后,您只需调用debugger(mixed $value);
函数,让FireBug做工作。此函数可以接受任何值,并将其简单地var_dump
和debug_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();
创建和注册您自己的面板
我们已经为您提供了一切,让您可以轻松创建自己的面板。
-
创建您自己的面板类
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'; } }
-
创建面板模板文件
<div class="my-own-panel"> <?php echo $this->myName; ?> <?php echo $this->myInfo(); ?> </div>
-
注册您的面板
$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);