用 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 加入工具箱都能节省你好几个小时的抓狂时间。

相关推荐
Victor3562 小时前
Redis(117)Redis的分布式锁如何使用?
后端
Moment2 小时前
为什么我们从 Python 迁移到 Node.js
前端·后端·node.js
Victor3562 小时前
Redis(116)Redis的内存管理如何实现?
后端
星释3 小时前
Rust 练习册 10:多线程基础与并发安全
开发语言·后端·rust
WX-bisheyuange7 小时前
基于Spring Boot的教师个人成果管理系统的设计与实现
java·spring boot·后端
chxii7 小时前
spring boot 获取HTTP 请求参数
spring boot·后端·http
桦说编程10 小时前
Guava 迭代器增强类介绍
java·后端·设计模式
2351610 小时前
【JVM】Java为啥能跨平台?JDK/JRE/JVM的关系?
java·开发语言·jvm·spring boot·后端·spring·职场和发展
courtfu10 小时前
Plugin ‘mysql_native_password‘ is not loaded`
java·后端