donquixote / nicetrace
一个用于生成人性化的PHP回溯数组的库。
0.0.4
2016-03-06 06:06 UTC
README
PHP库,用于生成人性化的回溯数组。
灵感来源于Drupal模块ddebug_backtrace()。
nicetrace的结构可以在nicetrace.php中查看。
开发状态
这个库相对较新,我还在完善API细节,即接口名称、方法签名等。
欢迎您参与。
功能
主要设计目标是回溯数组结构,在递归数组显示工具(如Krumo或Ladybug)中看起来很漂亮。
- 增强了带有函数/方法名称的跟踪项索引。
- 增强了带有参数名称的参数索引(基于反射)。
- 将跟踪项索引反转,以便索引反映调用树中的深度。
- 将参数内联,使得数组变得更扁平。例如:
$backtrace[5]['args'][0] = ..
变为
$nicetrace[' 8: foo()']['args[0]: $x'] = ..
. - 从一级更深的跟踪项获取文件名和行号,而不是“从...调用”。
- 如果指定了已知的基础路径,将缩短文件路径。
- 将文件基本名称和行号合并为一个数组键。例如:
$backtrace[5]['file'] = '/../src/MyNamespace/MyFile.php'; $backtrace[5]['line'] = 97;
变为
$nicetrace[' 8: foo()']['MyClass.php: 97'] = 'src/MyNamespace/MyClass.php';
基本用法
use Donquixote\Nicetrace\Util\NicetraceUtil; $backtrace = debug_backtrace(); $nicetrace = NicetraceUtil::backtraceGetNicetrace($backtrace); // Choose your favourite recursive function/method for recursive printing. print_r($nicetrace);
高级用法
该库允许创建和组合自定义的BacktraceToNicetrace处理器。
建议使用Builder类提供的流畅接口。
use Donquixote\Nicetrace\BacktraceToNicetrace\BacktraceToNicetraceBuilder; $backtrace = debug_backtrace(); $backtraceToNicetrace = BacktraceToNicetraceBuilder::start() ->withClasslessKey() ->create(); $nicetrace = NicetraceUtil::backtraceGetNicetrace($backtrace); // Choose your favourite recursive function/method for recursive printing. print_r($nicetrace);
测试用例提供了一些示例。