DevToolPal
繁

PHP 程式碼格式化

使用 Prettier 官方 PHP 外掛,依 PER 編碼規範(PSR-12)美化 PHP 程式碼。

本機處理,不會上傳

選項

縮排
大括號位置

輸入

0 字元 · 0 B

輸出

0 字元 · 0 B

這個工具能做什麼

PHP 格式化工具能把雜亂、壓縮過或縮排不一致的 PHP 整理成遵循社群編碼標準的乾淨程式碼。它支援現代語法,包括具型別和 readonly 屬性、建構子屬性提升、箭頭函式、列舉、match 運算式和屬性標註(attributes)。

它執行的是 Prettier 搭配官方 PHP 外掛,這也是許多 Laravel 和 Symfony 團隊在編輯器與 pre-commit hook 中使用的組合,因此結果會和你的工具鏈產出的一致。

使用方式

  1. 貼上 PHP 程式碼,或開啟 .php 檔案。簡短的程式片段可以省略開頭的 <?php 標籤。
  2. 格式化後的程式碼會隨著輸入即時顯示在右側。
  3. 調整選項:
    • 縮排:4 個空格是 PSR 標準;也可以選 2 個空格或 Tab。
    • 每行寬度:超過這個長度的行,會在語法允許的地方換行。
    • 大括號位置:類別和函式的大括號放在下一行(PER / PSR-12)或同一行。
    • PHP 版本:程式碼必須支援的最舊版本。
    • 使用單引號,以及多行清單的 多行時加尾隨逗號。
  4. 複製或下載結果。

如果程式碼有語法錯誤,訊息會指出剖析器預期的內容,以及它停下來的行號和欄號。

範例

範例是一個全部擠在一起的 Laravel 風格控制器:一個群組 use 陳述式、一個屬性陣列、建構子屬性提升、一個驗證呼叫、一個寫成一行的 if,還有一個搭配箭頭函式的 array_map。格式化之後,每個方法的大括號會移到獨立的一行,運算子和 => 前後加上空格,if 的內容被展開,長長的 response()->json() 呼叫也會換行,陣列每項一行並加上尾隨逗號。

不會改變的部分

格式化工具只改變排版。它不會重新命名變數、重新排序 use 陳述式、把 array() 轉成簡短語法,也不會修正邏輯。註解(包括 PHPDoc 區塊)都會保留,並隨著周圍的程式碼重新縮排。

小提示

  • 使用和專案中 Prettier 或 PHP-CS-Fixer 設定相同的每行寬度和 PHP 版本,避免 diff 出現多餘的變動。
  • 把從日誌或堆疊追蹤複製來的程式片段格式化後,會好讀很多。
  • 在 issue 中分享程式碼前先格式化,審查者就能專注在程式碼的功能上。

常見問題

› 採用哪一種程式碼風格?

預設輸出遵循 PER Coding Style,也就是 PHP-FIG 發布、接替 PSR-12 的規範。類別和方法的大括號獨立成一行,控制結構的大括號留在同一行,縮排為四個空格。

› 為什麼 PHP 版本很重要?

有些語法要到特定版本才合法。例如參數列表中的尾隨逗號需要 PHP 8.0,所以目標版本較舊時,格式化工具就不會加上它。請選擇你的程式碼必須支援的最舊版本。

› 可以格式化混合 HTML 和 PHP 的檔案嗎?

可以。支援含有行內 HTML 和簡短 echo 標籤的範本檔案。PHP 的部分會被格式化,中間的 HTML 則保持原樣。

› 我的程式碼會被上傳嗎?

不會。格式化工具完全在你的瀏覽器中執行,不會傳送任何內容到伺服器。