hexmakina / debugger
Debugger 是 var_dump() 输出的 PHP 封装类
0.1.4
2021-09-21 12:59 UTC
Requires
- php: >=7.0
README
var_dump 封装,可选完整堆栈跟踪,强制良好外观
- 它告诉你调用是从哪里开始的,所以你永远不需要再找忘记的 var_dump()
- 它显示导致转储的调用跟踪
- 对于每个跟踪,它都会向你展示文件名、类名和带有参数的函数
不再困惑错误是如何产生的。
用法
实例化 Debugger;加载类和快捷方式
new \HexMakina\Debugger\Debugger();
Debugger 类文件有 2 个命名空间,HexMakina\Debugger 中的调试器本身,以及在根命名空间中的 4 个快捷方式
vd($var, $label); // visual dump
dd($var, $label); // visual dump AND die();
vdt($var, $label); // visual dump with full trace
ddt($var, $label); // visual dump with full trace AND die();
例如,在文件 bootstrap.php 的第 16 行中转储变量 $foo,vd($foo);
的输出将是
**************
[bootstrap.php 16] ?::vd(1627941733.4195)
string(4) "bar"
vd($foo, 'a label for easy spotting');
的输出将是
******* (a label for easy spotting) *******
[bootstrap.php 16] ?::vd(1627942158.3575)
string(3) "bar"
但是 vdt($foo);
将是
**************
[index.php 2] ?::require(/var/www/dev.engine/koral/lareponse/koral/bootstrap.php)
[bootstrap.php 16] ?::vdt(1627941924.2403)
string(4) "bar"
现在我们看到程序在到达调试命令之前所经过的整个路径
更深入到代码中,在一个子子子子子子.. 例程中,vdt($foo, 'inspecting foo');
的输出将是
******* (inspecting) *******
[index.php 35] HexMakina\koral\Controllers\Home::bootstrap()
[Home.php 28] App\Controllers\Home::common_viewport(HexMakina\kadro\Controllers\Reception)
[Home.php 18] HexMakina\TightORM\TableModel::filter()
[TableModel.php 184] HexMakina\koral\Models\Worker::filter(Array #0, Array #0)
[Worker.php 78] HexMakina\TightORM\TightModel::filter(Array #0, Array #0)
[TightModel.php 160] HexMakina\TightORM\TightModelSelector::__construct(HexMakina\koral\Models\Worker)
[TightModelSelector.php 20] HexMakina\TightORM\TableModel::table()
[Crudites.php 31] ::vdt(1631261380.9958)
string(6) "bar"
简单调试和传统格式,这就是 Debugger。