Laravel Pint
簡介
Laravel Pint 是一款為極簡主義者設計的、具有主觀性的 PHP 程式碼樣式修正器。Pint 基於 PHP-CS-Fixer 建構,可輕鬆確保您的程式碼樣式保持整潔和一致。
Pint 會自動安裝在所有新的 Laravel 應用程式中,因此您可以立即開始使用它。預設情況下,Pint 不需要任何設定,並且會遵循 Laravel 的主觀程式碼樣式,來修正您程式碼中的程式碼樣式問題。
安裝
Pint 已包含在 Laravel 框架的最新版本中,因此通常不需要安裝。但是,對於較舊的應用程式,您可以使用 Composer 安裝 Laravel Pint
composer require laravel/pint --dev
執行 Pint
您可以透過呼叫專案的 vendor/bin
目錄中可用的 pint
二進位檔,來指示 Pint 修正程式碼樣式問題
./vendor/bin/pint
您也可以在特定的檔案或目錄上執行 Pint
./vendor/bin/pint app/Models ./vendor/bin/pint app/Models/User.php
Pint 將顯示它更新的所有檔案的詳細清單。您可以透過在呼叫 Pint 時提供 -v
選項,來檢視有關 Pint 變更的更多詳細資訊
./vendor/bin/pint -v
如果您希望 Pint 僅檢查您的程式碼是否存在樣式錯誤,而無需實際變更檔案,您可以使用 --test
選項。如果發現任何程式碼樣式錯誤,Pint 將傳回非零的退出碼
./vendor/bin/pint --test
如果您希望 Pint 僅修改根據 Git 具有未提交變更的檔案,您可以使用 --dirty
選項
./vendor/bin/pint --dirty
如果您希望 Pint 修正任何具有程式碼樣式錯誤的檔案,並且在修正任何錯誤時也以非零的退出碼退出,您可以使用 --repair
選項
./vendor/bin/pint --repair
設定 Pint
如先前所述,Pint 不需要任何設定。但是,如果您希望自訂預設配置、規則或檢查的資料夾,您可以在專案的根目錄中建立 pint.json
檔案來執行此操作
{ "preset": "laravel"}
此外,如果您希望使用特定目錄中的 pint.json
,您可以在呼叫 Pint 時提供 --config
選項
./vendor/bin/pint --config vendor/my-company/coding-style/pint.json
預設配置
預設配置定義了一組可用於修正您程式碼中程式碼樣式問題的規則。預設情況下,Pint 使用 laravel
預設配置,該配置遵循 Laravel 的主觀程式碼樣式來修正問題。但是,您可以透過向 Pint 提供 --preset
選項來指定不同的預設配置
./vendor/bin/pint --preset psr12
如果您願意,也可以在專案的 pint.json
檔案中設定預設配置
{ "preset": "psr12"}
Pint 目前支援的預設配置為:laravel
、per
、psr12
、symfony
和 empty
。
規則
規則是 Pint 將用來修正您程式碼中程式碼樣式問題的樣式指南。如上所述,預設配置是預定義的規則群組,應該非常適合大多數 PHP 專案,因此您通常不需要擔心它們包含的個別規則。
但是,如果您願意,您可以在 pint.json
檔案中啟用或停用特定的規則,或使用 empty
預設配置並從頭開始定義規則
{ "preset": "laravel", "rules": { "simplified_null_return": true, "array_indentation": false, "new_with_parentheses": { "anonymous_class": true, "named_class": true } }}
Pint 基於 PHP-CS-Fixer 建構。因此,您可以使用它的任何規則來修正專案中的程式碼樣式問題:PHP-CS-Fixer Configurator。
排除檔案 / 資料夾
預設情況下,Pint 會檢查您專案中除了 vendor
目錄中的所有 .php
檔案。如果您希望排除更多資料夾,可以使用 exclude
設定選項來執行此操作
{ "exclude": [ "my-specific/folder" ]}
如果您希望排除所有包含指定名稱模式的檔案,可以使用 notName
設定選項來執行此操作
{ "notName": [ "*-my-file.php" ]}
如果您希望透過提供檔案的確切路徑來排除檔案,可以使用 notPath
設定選項來執行此操作
{ "notPath": [ "path/to/excluded-file.php" ]}
持續整合
GitHub Actions
要使用 Laravel Pint 自動化專案的程式碼檢查,您可以設定 GitHub Actions,以便在將新程式碼推送至 GitHub 時執行 Pint。首先,請務必在 GitHub 中的 設定 > Actions > 一般 > 工作流程權限中將「讀取和寫入權限」授予工作流程。然後,建立一個包含以下內容的 .github/workflows/lint.yml
檔案
name: Fix Code Style on: [push] jobs: lint: runs-on: ubuntu-latest strategy: fail-fast: true matrix: php: [8.3] steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: json, dom, curl, libxml, mbstring coverage: none - name: Install Pint run: composer global require laravel/pint - name: Run Pint run: pint - name: Commit linted files uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "Fixes coding style"