用 LaraDumps 高效调试 PHP 和 Laravel

用 LaraDumps 高效调试 PHP 和 Laravel

引言

如果你开发 Laravel 应用有一段时间了,肯定用过无数次 dd()、dump() 或 var_dump()。它们确实能用,但也有代价:

  • 会中断应用流程
  • 在浏览器里输出很乱
  • 刷新页面就没了
  • 没法优雅地查看复杂数据

如果 PHP 调试能像用专业工具那样顺手,而不是在浏览器控制台里瞎摸索,会怎样?

这就是 LaraDumps ------ 一个免费开源的桌面调试应用,能把你的 PHP 和 Laravel 调试体验提升一个档次。

原文 用 LaraDumps 高效调试 PHP 和 Laravel

为什么用 LaraDumps?

跟传统调试方法不同,LaraDumps 不会把调试信息打印到浏览器。它会把所有东西发送到一个干净、有序的实时桌面界面。

主要优势:

  • 应用不会中断 ------ 页面正常跑
  • 持久化历史 ------ 刷新后数据还在
  • 多条输出 ------ 同时查看不同位置的数据
  • 实时监控 SQL 和日志
  • 不限于 Laravel,任何 PHP 项目都能用
  • 变量、数组、对象格式化得很漂亮

核心功能

无中断实时调试

php 复制代码
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 解决了这个问题。你的调试输出会一直保留,即使多次请求后也能回看之前的数据。

独立桌面应用

所有调试信息都进入一个独立的、优雅的应用,具备:

  • 多屏支持
  • 明暗主题(基于 daisyUI)
  • 可搜索的表格视图(用于数组和对象)
  • 标签页分离不同的输出

Laravel 专属工具

LaraDumps 不限框架,但为 Laravel 开发者提供了额外功能:

路由列表

php 复制代码
ds()->routes();

这会把整个 Laravel 路由列表输出到应用里 ------ 在大项目中超级有用。

模型检查器

php 复制代码
use App\Models\Game;

$game = Game::first();

ds()->model($game);

这会给你一个结构化的视图,展示模型属性、关联、类型转换等。比手动打印数组强太多。

Blade 指令

有时你只是想在 Blade 视图里做个标记:

blade 复制代码
@ds('Rendering Games Table Blade')

在调试复杂 UI 流程时特别有用。

5. 查询和日志监控

LaraDumps 可以自动追踪数据库查询并捕获 Laravel 日志 ------ 无需配置。

php 复制代码
$games = Game::query()
    ->where('is_active', true)
    ->ds() // 在 get() 前链式调用
    ->get();

这会把查询和结果记录到桌面应用。

如果你用 Log facade:

php 复制代码
\Log::info('This will appear in LaraDumps too!');

6. Xdebug 集成

如果你喜欢单步调试,LaraDumps 集成了 Xdebug。你可以设断点、单步执行,同时还能用它漂亮的变量检查器。

实际调试案例

看几个实际场景,展示 LaraDumps 如何让你的生活更轻松。

调试支付流程

假设你在做多步骤结账流程。在控制器里用 dd() 会中断重定向流程。用 LaraDumps:

php 复制代码
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]);
}

你可以追踪整个流程而不中断执行,在多个位置查看数据。

调试后台任务

php 复制代码
class SendWelcomeEmail implements ShouldQueue
{
    public function handle()
    {
        ds('Job started');

        // ...发送邮件逻辑

        ds('Job finished');
    }
}

LaraDumps 的任务监控器会实时显示任务执行信息 ------ 对队列密集型应用特别合适。

JSON 验证和字符串搜索

桌面应用里有个 JSON 验证工具,可以验证和美化 JSON 字符串。还有内置的字符串搜索功能,能快速在大量输出中找到值。

安装

设置 LaraDumps 很简单:

bash 复制代码
composer require laradumps/laradumps --dev

然后从官方文档下载并运行适合你操作系统的桌面应用。

就这样 ------ 你可以开始用 ds() 进行干净的调试了。

总结

LaraDumps 是那种一旦用上就回不去的工具。它让 PHP 调试更现代化、更干净、更快速、也更愉快。

无论你是在做小型 Laravel 应用还是大型企业系统,把 LaraDumps 加入工具箱都能节省你好几个小时的抓狂时间。

相关推荐
code2cat1 小时前
【随笔】连续批处理:长短请求怎样在迭代之间补位
java·人工智能·后端·大语言模型·vllm
掘金者阿豪2 小时前
SQL Server数据迁移完成后,凌晨的数据库告警该怎么查?
前端·后端
可涵不会debug2 小时前
PHP2Shell 爆发一周后:CVE-2026-109618/109619 自查、修复与防护实录
安全·php·云安全·waf·phpshell
鶴哥只手遮天2 小时前
AFSIM 2.9.0 深度解析·进阶卷第 1 章 插件源码精读:16 个 WSF 插件的架构与实现
后端
愚农搬码2 小时前
低代码表单与在线问卷不是一回事:产品定位和技术边界
后端
武子康2 小时前
固定时间步已经开了,为什么游戏回放还会走出不同位置?
人工智能·后端·agent
70后写java的老码农2 小时前
换模型只改三行配置:LangChain4j + Spring Boot 3.5 实战,一次分别接入 9 家模型服务
后端·ai编程
一支蜉蝣2 小时前
Day26 XD安全学习笔记--PHP 应用&模版引用&Smarty渲染&MVC 模型&数据联动&RCE 安全
笔记·网络安全·html·php
愚农搬码2 小时前
2026 年开源表单设计器选型:哪个更好用?
后端
vipxieliang3 小时前
ValidX 正则表达式预编译优化:Pattern 复用策略
java·spring boot·后端