如果你开发 Laravel 应用有一段时间了,肯定用过无数次 dd()、dump() 或 var_dump()。它们确实能用,但也有代价:
如果 PHP 调试能像用专业工具那样顺手,而不是在浏览器控制台里瞎摸索,会怎样?
这就是 LaraDumps —— 一个免费开源的桌面调试应用,能把你的 PHP 和 Laravel 调试体验提升一个档次。
跟传统调试方法不同,LaraDumps 不会把调试信息打印到浏览器。它会把所有东西发送到一个干净、有序的实时桌面界面。
主要优势:
public function index()
{
$games = Game::orderBy('match_date', 'asc')->get();
ds($games);
return view('games.index', compact('games'));
}用 ds($games) 代替 dd($games),结果会直接出现在 LaraDumps 桌面应用里,不会中断请求,也不会在浏览器里输出乱七八糟的东西。
刷新页面后 dd() 的输出就没了,遇到过吧?
LaraDumps 解决了这个问题。你的调试输出会一直保留,即使多次请求后也能回看之前的数据。
所有调试信息都进入一个独立的、优雅的应用,具备:
LaraDumps 不限框架,但为 Laravel 开发者提供了额外功能:
路由列表
ds()->routes();这会把整个 Laravel 路由列表输出到应用里 —— 在大项目中超级有用。
模型检查器
use App\Models\Game;
$game = Game::first();
ds()->model($game);这会给你一个结构化的视图,展示模型属性、关联、类型转换等。比手动打印数组强太多。
Blade 指令
有时你只是想在 Blade 视图里做个标记:
@ds('Rendering Games Table Blade')在调试复杂 UI 流程时特别有用。
LaraDumps 可以自动追踪数据库查询并捕获 Laravel 日志 —— 无需配置。
$games = Game::query()
->where('is_active', true)
->ds() // 在 get() 前链式调用
->get();这会把查询和结果记录到桌面应用。
如果你用 Log facade:
\Log::info('This will appear in LaraDumps too!');如果你喜欢单步调试,LaraDumps 集成了 Xdebug。你可以设断点、单步执行,同时还能用它漂亮的变量检查器。
看几个实际场景,展示 LaraDumps 如何让你的生活更轻松。
假设你在做多步骤结账流程。在控制器里用 dd() 会中断重定向流程。用 LaraDumps:
public function checkout(Request $request)
{
ds('Checkout started', $request->all());
$payment = $this->paymentService->create($request->user(), $request->amount);
ds($payment)->label('Payment Created');
return redirect()->route('payment.redirect', ['id' => $payment->id]);
}你可以追踪整个流程而不中断执行,在多个位置查看数据。
class SendWelcomeEmail implements ShouldQueue
{
public function handle()
{
ds('Job started');
// ...发送邮件逻辑
ds('Job finished');
}
}LaraDumps 的任务监控器会实时显示任务执行信息 —— 对队列密集型应用特别合适。
桌面应用里有个 JSON 验证工具,可以验证和美化 JSON 字符串。还有内置的字符串搜索功能,能快速在大量输出中找到值。
设置 LaraDumps 很简单:
composer require laradumps/laradumps --dev然后从官方文档下载并运行适合你操作系统的桌面应用。
就这样 —— 你可以开始用 ds() 进行干净的调试了。
LaraDumps 是那种一旦用上就回不去的工具。它让 PHP 调试更现代化、更干净、更快速、也更愉快。
无论你是在做小型 Laravel 应用还是大型企业系统,把 LaraDumps 加入工具箱都能节省你好几个小时的抓狂时间。