Asf_Debug_Dump

(Asf >= 2.1.7)

Introduction

打印变量的相关信息

自动兼容当前脚本所在的环境, 如 cli, php-cgi 等, 不同的环境展示相同的美化效果

在开启命名空间情况下(asf.use_namespace=1)类名为 Asf\Debug\Dump

Class synopsis

<?php
namespace Asf\Debug;

final class Dump
{
    public static string vars(mixed $expression [, mixed $... ])
}

性能评估

这里简单地做了一个性能对比测试(ab -c50 -n100), 选择了原生PHP var_dump, Asf\Debug\Dump, Symfony\Component\VarDumper

<?php
// 公共部分代码
define('VER_STR', 'VERSION_ID_100');

$a_check = array(
    'aaa',
    'bbb' => array(
        'aaa_1' => 100,
        'bbb_1' => array(
            'ccc_2',
            'ccc_3' => 'world',
            'ccc_4' => VER_STR
        )
    ),
    'a' => false,
    'b' => true,
    'c' => null,
    'd' => 100.05,
);
名称 美化 源代码 压测结果 (ab -c50 -n100)
PHP var_dump
<?php
// 公共部分代码
for ($i = 0; $i < 1000; $i++) {
    var_dump($a_check);
}
Total transferred:      35413700 bytes
HTML transferred:       35400000 bytes
Requests per second:    634.04 [#/sec] (mean)
Time per request:       78.859 [ms] (mean)
Time per request:       1.577 [ms] (mean, across all concurrent requests)
Transfer rate:          219274.10 [Kbytes/sec] received
Asf\Debug\Dump
<?php
// 公共部分代码
for ($i = 0; $i < 1000; $i++) {
    dump::vars($a_check);
}
Total transferred:      173913700 bytes
HTML transferred:       173900000 bytes
Requests per second:    490.18 [#/sec] (mean)
Time per request:       102.004 [ms] (mean)
Time per request:       2.040 [ms] (mean, across all concurrent requests)
Transfer rate:          832508.68 [Kbytes/sec] received
Symfony\Component\VarDumper
<?php
// 公共部分代码
require __DIR__.'/vendor/autoload.php';

for ($i = 0; $i < 1000; $i++) {
    dump($a_check);
}
Total transferred:      121174116 bytes
HTML transferred:       121160416 bytes
Requests per second:    27.68 [#/sec] (mean)
Time per request:       1806.075 [ms] (mean)
Time per request:       36.121 [ms] (mean, across all concurrent requests)
Transfer rate:          32760.03 [Kbytes/sec] received