Asf_Debug_Trace

(Asf >= 2.2.0)

Introduction

此函数会纪录所有已经执行过的SQL语句

当开启此功能时, 会自动记录基于框架提供的DB、Cache类各项操作的执行语句、执行耗时信息

当开启此功能时, 最多纪录100条数据(不区分任何模式), 理论上一个过程不会有这么多SQL (防止在CLI模式下占用大量内存)

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

结果字段说明

字段名称 含义
i DB类型;注:当前统一归纳为MySQL
s 执行的命令/方法
v 执行的条件
t 执行所消耗的时间, 默认保留小数点5位。 单位(秒)
r 执行得到的结果/结果集

Class synopsis

<?php
namespace Asf\Debug;

final class Trace
{
    /* 自定义调试信息 */
    public static bool log(string $data);
    /* 打印记录的跟踪信息 */
    public static array/null show(void);
    /* 清除已经跟踪信息 */
    public static bool clear(void);
}

Examples

Open the Trace Log

<?php
// 第一种方式, 在PHP代码中设置, 比如在框架入口文件设置
ini_set('asf.trace_enable', 1);

// 第二种方式, 在php.ini中设置
[asf]
asf.trace_enable = 1

Example #1

<?php
use Asf\Debug\Trace;

Trace::log(['sql' => 'select * from table']);
var_dump(Trace::show());

Example #2

<?php
use Asf\Debug\Trace;

var_dump(Trace::show());

Example #3

<?php
use Asf\Debug\Trace;

Trace::log(['sql' => 'select * from table']);
Trace::clear();

Trace::log(['sql' => 'select * from table']);
var_dump(Trace::show());