UStackUStack
Ray icon

Ray

Ray 是桌面 App,整理你程式的除錯輸出,支援檢視、篩選與封存數值,避免混亂你的應用程式。

Ray

Ray 是什麼?

Ray 是一款專用桌面 App,用於在應用程式執行環境外整理與檢視除錯輸出。它讓你使用一致的 ray(...) 語法傳送數值(字串、陣列、物件等),然後在 Ray 中檢視、篩選並重溫結果。

其核心目的是讓除錯輸出保持可讀且結構化,同時減少在應用程式中加入額外記錄程式碼的需求。Ray 也支援透過 SSH 進行遠端除錯,並包含 PHP/Laravel 環境下的暫停與執行時間測量工具。

主要功能

  • 專用桌面檢視除錯輸出:將除錯輸出保存在專用 App 中,讓你無需依賴瀏覽器主控台即可檢視結果。
  • 多種資料類型的格式化呈現:傳送字串、陣列、物件與表格等數值,並整齊呈現以供檢視。
  • 訊息篩選、標記與搜尋:依類型、來源或自訂標記篩選,並使用搜尋找出先前的輸出。
  • 封存與清除控制:清除畫面並封存訊息,以便後續參考、比較輸出或調查難以重現的問題。
  • 透過 SSH 進行遠端除錯:透過 SSH 連線伺服器,將遠端程式碼的除錯輸出串流至 Ray。
  • 跳轉至 IDE:從傾印輸出跳轉回編輯器中的相關位置(支援多種 IDE,如網站所述)。
  • 跨語言/框架的除錯語法:網站描述使用相同的 dump 風格方法,適用於各語言與框架。
  • Ray 3.0 的 PHP/Laravel 執行工具:包含暫停與測量執行時間,用於暫停 PHP/Laravel 程式碼並測量呼叫間隔。
  • 自動接收執行時輸出 (Ray 3.0):網站提到自動接收輸出(例如查詢、工作、例外),無需在程式碼中明確呼叫。
  • 擴充性與自訂:變更主題、使用巨集擴充 Ray,或為尚未支援的語言/框架建立自訂客戶端傳送資料。
  • AI 功能 (Ray 3.0):直接在 Ray 中與 AI 輸出互動,包括 AI 生成的 HTML 元件/原型,以及內建檢視器用於 Mermaid 與 ERD 圖表的結構化說明。
  • AI 代理的 MCP 伺服器:網站指出 MCP 伺服器讓 AI 代理存取視窗/工具,以讀取、產生與輸出內容。

如何使用 Ray

  1. 下載 Ray,如需購買授權(網站顯示 $49 USD 價格,並提及透過 Spatie 管理 1 年授權)。
  2. 使用網站所示 ray(...) 語法傳送除錯輸出(範例包含標記、表格、套用顏色及依呼叫屬性篩選)。
  3. 在 Ray 中檢視與管理訊息:使用搜尋與篩選縮小結果,並在需要比較輸出時封存訊息。
  4. (選用) 設定遠端除錯:透過 SSH 連線伺服器,讓 Ray 串流遠端執行的除錯輸出。
  5. (選用) 使用 IDE 導航與執行工具:從 Ray 輸出跳轉至原始碼位置,並使用 PHP/Laravel 的暫停與測量執行工具。

使用情境

  • 無需混亂應用程式即可檢視複雜數值:傳送字串、陣列、物件與表格至 Ray(含標記與格式化),在開發期間了解狀態,而無需依賴原始主控台輸出。
  • 使用篩選除錯特定請求或程式碼路徑:為 ray(...) 呼叫附加顏色/標記,然後在 Ray 中依類型/來源/標記篩選,隔離相關訊息。
  • 跨多次嘗試比較輸出:在變更程式碼前/後封存訊息,以便疑難排解間歇性問題時重溫先前輸出。
  • 透過 SSH 進行遠端伺服器除錯:將遠端伺服器上執行的程式碼除錯輸出串流至 Ray,無需手動複製記錄即可檢視結果。
  • PHP/Laravel 效能與流程除錯:暫停執行並測量呼叫間隔時間,加上 Ray 3.0 所述自動接收特定執行時輸出(查詢、工作、例外)。
  • 透過 AI 處理資料庫圖表與結構說明:使用 Ray 3.0 功能,讓 AI 說明資料庫結構,並以 Mermaid 或 ERD 格式檢視結構化輸出。

常見問題

  • Ray 只適用於瀏覽器除錯嗎? 不是。網站描述 Ray 是一款專屬桌面 App,將除錯輸出組織在應用程式執行環境之外。

  • Ray 支援哪些輸出格式? 網站指出 Ray 會格式化接收到的輸出(例如字串、陣列、物件),並能呈現表格;也提到可傾印查詢、電子郵件、事件與堆疊追蹤。

  • Ray 可以除錯遠端伺服器上的程式碼嗎? 可以。網站描述可透過 SSH 連線,並串流除錯輸出至 Ray。

  • Ray 會取代 dd() 或其他除錯工具嗎? 頁面表示 Ray 不會取代 dd 或 xdebug;它被描述為第三種工具,填補快速傾印與更結構化除錯工作流程之間的空白。

  • Ray 3.0 有什麼新功能? 頁面強調暫停與測量執行、AI 互動(包含 HTML 元件與 Mermaid/ERD 檢視器),以及用於 AI 代理的 MCP 伺服器。

替代方案

  • 瀏覽器內記錄與主控台輸出(例如 console.log、瀏覽器開發者工具):適合快速檢查,但結果綁定在瀏覽器環境中,且未以專屬、可搜尋的桌面時間軸呈現。
  • 應用程式框架中的「傾印」輔助工具(例如 dd() 風格除錯):快速直接,但通常將輸出保留在應用程式/瀏覽器回應內,而非獨立的桌面 App 提供篩選/搜尋與封存功能。
  • 遠端記錄/可觀測性工具:用於收集遠端環境記錄的替代方案,通常著重記錄彙整與監控,而非 Ray 描述的結構化、訊息導向檢視工作流程。
  • 終端機式 REPL/除錯工具:可在開發時檢視數值,但可能無法提供 Ray 網站提及的相同組織化桌面 UI、篩選與 IDE 跳轉工作流程。
Ray | UStack