PHP CS Fixer 的使用及 PHP Storm 配置說明

hmingv發表於2022-01-12

PHP CS Fixer

介紹

這是什麼?

PHP Coding Standards Fixer (PHP CS Fixer) 工具用於修復您的程式碼以遵循標準。無論是想遵循 PSR-1、PSR-2等中定義的 PHP 編碼標準還是其他社群驅動的標準,如 Symfony 標準。您還可以通過配置定義(團隊)標準。

它能做什麼?

它可以使您的程式碼符合現代化標準

為什麼要用它?

如果已經在用 linter 來識別程式碼中的編碼標準問題,那麼您就會知道手動修復它們是乏味的,尤其在大型專案中。

該工具不僅可以檢測到它們,還可以修復它們。

安裝

本文件基於 Windows 系統講述

安裝 PHP CS Fixer 的推薦方法是在專用的 Composer 中使用專案中的 composer.json 檔案,例如在 tools/php-cs-fixer 目錄中

$ d: # 進入 d 盤
$ cd project
$ composer require friendsofphp/php-cs-fixer

更多的安裝方法,參考安裝說明

用法

假設您已經安裝上面的說明安裝了 PHP CS Fixer,您看也i執行一下命令來修復 app 目錄中的 PHP 檔案。

$ d: # 進入 d 盤
$ cd project
$ ./vendor /bin/php-cs-fixer fix src

如果需要應用該工具不支援的程式碼樣式,您可以建立自定義規則

編輯器整合

PHP Storm

基於 Windows 環境下的 PHP Storm 2021.2 版本

自動檢測
  1. 開啟編輯器設定:點選 File->Settings 或使用快捷鍵 Ctrl+Alt+S

  2. 點選 PHP -> Quality Tools -> PHP CS Fixer

  3. 設定 ConfigurationLocal (這一般是預設選項)

  4. 點選 …
    PHP CS Fixer 的使用及 PHP Storm 配置說明

  5. 配置 PHP CS Fixer path 項,指定 PHP CS Fixer 可執行檔案,按照上方示例安裝,則路徑為 D:\project\vendor\bin\php-cs-fixer.bat

  6. 點選 Validate 驗證是否正確,路徑配置正確底部會提示 OK…

  7. 點選 PHP CS Fixer inspection
    PHP CS Fixer 的使用及 PHP Storm 配置說明

  8. 勾選 PHP CS Fixer validation 後面的核取方塊

  9. Options 設定中 勾選 Allow risky rules for built-in rulesets 然後選擇Ruleset(你想遵循的標準),然後點選OK,依次 退出並應用 apply 配置即可
    PHP CS Fixer 的使用及 PHP Storm 配置說明

  10. 此時編輯程式碼後,編輯器就會提示語法問題,點選 PHP CS Fixer: fix the whole file 會修復該檔案
    PHP CS Fixer 的使用及 PHP Storm 配置說明

批處理修復
  1. 同樣是進入配置

  2. 依次點選 Tools -> External Tools

  3. 點選 + 按鈕,新增外部工具
    PHP CS Fixer 的使用及 PHP Storm 配置說明

    Name:工具名稱(php-cs-fixer)

    Group:工具分組(預設)

    Desciption:描述(隨便寫)

    Tool Settings

    ​ Program:可執行檔案路徑(D:\project\vendor\bin\php-cs-fixer.bat 按照個人配置自行修改)

    ​ Arguments:引數(fix $FileDir$ 使用 $$ 包裹的是 PHPStorm 變數,會自動替換)

    ​ Working directory:專案路徑($Projectpath$)

  4. 點選 OK 儲存即可。

  5. 此時已經配置完成,回到程式碼編輯的區域,點選導航 Tools -> External Tools -> php-cs-fixer
    PHP CS Fixer 的使用及 PHP Storm 配置說明
    PHP CS Fixer 的使用及 PHP Storm 配置說明

  6. 此時可以看到控制檯的列印記錄,表示修復了兩個檔案,看檔案程式碼已經修復了規範問題

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章