zxf/trace
最新稳定版本:v1.0.1
Composer 安装命令:
composer require zxf/trace
包简介
系统操作调试
README 文档
README
配置定义【可选】
发布
config/trace.php配置文件,所有的配置项都可以不定义或者直接不创建配置文件,则会自动使用默认配置项;
php artisan vendor:publish --provider="zxf\Trace\Providers\TraceServiceProvider"
一、数据调试
是否开启trace的调试的判定条件(可查看is_enable_trace函数);
- 1、
cli命令行环境下直接关闭 - 2、手动定义了
app.trace配置参数[最高优先级]- 如果在 config 文件夹下的
app.php文件中配置了trace参数为true|false则使用此配置项;
- 如果在 config 文件夹下的
- 3、未定义配置的判定;
- APP_ENV 的配置项 不是 production (生产环境) 或者 开启了调试APP_DEBUG=true
- 不是 ajax 请求
响应/输出 视图/数据
$title = '个人信息'; $list = [ 'name/姓名' => '张三', 'age/年龄' => 18, 'hobbies/爱好' => ['篮球', '音乐'], 'address/地址' => [ 'city' => '上海', 'street' => '上海路', 'zip' => '200000', ], 'birthday/生日' => '2023-01-01', 'phone' => '13800000000', 'email' => '1234567890@qq.com', 'is_active' => false, ]; // 输出 调试html app('trace')->outputDebugHtml($list, $title); $code = 200; $message = '操作成功'; // 响应输出json app('trace')->respJson($message, $code)->send(); // 响应输出视图 app('trace')->respView($message, $code)->send();
代码调试
使用辅助函数
trace进行调整,
// 支持任意个不同类型的参数 trace('this is a test string'); trace(['this is a test array1']); trace('string',['array1'],['array2'],'string2');
说明: 如果是普通的get请求(非ajax请求),会直接在页面底部展示调试信息; 如果是其他请求的 会记录到
laravel的本地日志文件中,以日志的方式呈现
SQL预览
public function test(Request $request) { try { DB::beginTransaction(); DB::table('users')->first(); DB::commit(); return ''; } catch (\Exception $exception) { DB::rollback(); return $this->error([ 'code' => 500, 'message' => $exception->getMessage(), ]); } }
异常追踪
public function test(Request $request) { 语法异常测试-Syntax anomaly testing return 'YOC.CN'; }
二、Laravel 11+ 优雅接管异常处理
接入
在引导文件bootstrap/app.php中接入异常处理
引入 zxf/trace 包后,默认会自动处理 laravel 的异常;
->withExceptions(function (Exceptions $exceptions): void { // 此处可以空着,什么代码都不需要写,zxf/trace 包就会自动处理 // 仅在需要对某个或某些(例如:[500],[401,500])错误码进行特殊处理(例如401自定义跳转逻辑)或者定义不需要被报告的异常类列表时可自定义处理 })
默认模式
->withExceptions(function (Exceptions $exceptions): void { // 异常处理类 \zxf\Trace\CustomExceptionHandler::handle($exceptions); })
自定义处理指定错误码
->withExceptions(function (Exceptions $exceptions): void { // 接入异常处理类 - 自定义处理部分异常状态码的逻辑 /** * 初始化 Laravel 11+ 异常处理类 * * @param Exceptions $exceptions lv11 + 异常类 * @param Closure|null $customHandleCallback 想要自定义处理的回调函数:回调 ($code, $message); * @param array $customHandleCode 需要自定义回调处理的错误码;空表示由接管所有的错误码回调处理,不为空表示只接管指定的错误码回调处理;eg: [401], [401,403] * @param array $dontReport 不需要被报告的异常类列表 */ // 接入异常处理类 \zxf\Trace\CustomExceptionHandler::handle($exceptions, function ($code, $message, $exception) { if ($code == 401) { return to_route('login'); } }, [401, 403], // 需要自定义处理的异常状态码,为表示处理所有的异常状态码 [ // 定义不需要报告的异常类 // Your\Path\InvalidException::class ] ); })
异常日志处理
定义好Laravel 默认的日志处理 Illuminate\Support\Facades\Log , 异常日志走定义好的默认渠道,默认渠道记录异常时 才走本地日志渠道stack
use Illuminate\Support\Facades\Log;
// 记录日志
try {
Log::error($message, $content);
} catch (Throwable $err) {
// 写入本地文件日志
Log::channel('stack')->error($message, $content);
}
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-14



