donquixote/nicetrace

一个用于生成人性化的PHP回溯数组的库。

0.0.4 2016-03-06 06:06 UTC

This package is auto-updated.

Last update: 2024-09-24 13:46:12 UTC


README

PHP库,用于生成人性化的回溯数组。

灵感来源于Drupal模块ddebug_backtrace()

nicetrace的结构可以在nicetrace.php中查看。

开发状态

这个库相对较新,我还在完善API细节,即接口名称、方法签名等。
欢迎您参与。

功能

主要设计目标是回溯数组结构,在递归数组显示工具(如KrumoLadybug)中看起来很漂亮。

  • 增强了带有函数/方法名称的跟踪项索引。
  • 增强了带有参数名称的参数索引(基于反射)。
  • 将跟踪项索引反转,以便索引反映调用树中的深度。
  • 将参数内联,使得数组变得更扁平。例如:
    $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);

测试用例提供了一些示例。