博客 / 詳情

返回

用 LaraDumps 高效調試 PHP 和 Laravel

如果你開發 Laravel 應用有一段時間了,肯定用過無數次 dd()、dump() 或 var_dump()。它們確實能用,但也有代價:

  • 會中斷應用流程
  • 在瀏覽器裏輸出很亂
  • 刷新頁面就沒了
  • 沒法優雅地查看複雜數據
    如果 PHP 調試能像用專業工具那樣順手,而不是在瀏覽器控制枱裏瞎摸索,會怎樣?

這就是 LaraDumps —— 一個免費開源的桌面調試應用,能把你的 PHP 和 Laravel 調試體驗提升一個檔次。

原文 用 LaraDumps 高效調試 PHP 和 Laravel

為什麼用 LaraDumps?
跟傳統調試方法不同,LaraDumps 不會把調試信息打印到瀏覽器。它會把所有東西發送到一個乾淨、有序的實時桌面界面。

主要優勢:

  • 應用不會中斷 —— 頁面正常跑
  • 持久化歷史 —— 刷新後數據還在
  • 多條輸出 —— 同時查看不同位置的數據
  • 實時監控 SQL 和日誌
  • 不限於 Laravel,任何 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 開發者提供了額外功能:

路由列表

ds()->routes();
這會把整個 Laravel 路由列表輸出到應用裏 —— 在大項目中超級有用。

模型檢查器

use App\Models\Game;

$game = Game::first();

ds()->model($game);

這會給你一個結構化的視圖,展示模型屬性、關聯、類型轉換等。比手動打印數組強太多。

Blade 指令

有時你只是想在 Blade 視圖裏做個標記:
`
@ds('Rendering Games Table Blade')`
在調試複雜 UI 流程時特別有用。
https://www.disktool.cn/bbs/home.php?mod=space&uid=20792&do=b...

  1. 查詢和日誌監控
    LaraDumps 可以自動追蹤數據庫查詢並捕獲 Laravel 日誌 —— 無需配置。

    
    $games = Game::query()
     ->where('is_active', true)
     ->ds() // 在 get() 前鏈式調用
     ->get();

    這會把查詢和結果記錄到桌面應用。

如果你用 Log facade:

\Log::info('This will appear in LaraDumps too!');
  1. Xdebug 集成
    如果你喜歡單步調試,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 驗證工具,可以驗證和美化 JSON 字符串。還有內置的字符串搜索功能,能快速在大量輸出中找到值。

安裝
設置 LaraDumps 很簡單:

composer require laradumps/laradumps --dev

然後從官方文檔下載並運行適合你操作系統的桌面應用。

就這樣 —— 你可以開始用 ds() 進行乾淨的調試了。

總結
LaraDumps 是那種一旦用上就回不去的工具。它讓 PHP 調試更現代化、更乾淨、更快速、也更愉快。

無論你是在做小型 Laravel 應用還是大型企業系統,把 LaraDumps 加入工具箱都能節省你好幾個小時的抓狂時間。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.