Laravel Pint
簡介
Laravel Pint is an opinionated PHP code style fixer for minimalists. Pint is built on top of PHP CS Fixer and makes it simple to ensure that your code style stays clean and consistent.
在所有新建立的 Laravel 專案中,會自動安裝 Pint,因此你可以馬上開始使用。預設情況下,Pint 並不需要任何設定,會自動使用 Laravel 的主導性 Coding Style 來修正程式碼中的 Coding Style 問題。
安裝
Pint 已包含在最近釋出的 Laravel 框架中,因此通常不需要進行安裝。不過,在舊的專案中,可以使用 Composer 來安裝 Laravel Pint:
1composer require laravel/pint --dev
1composer require laravel/pint --dev
執行 Pint
只要呼叫專案 vendor/bin
目錄中的 pint
二進位檔案,就可以讓 Pint 修正 Coding Style 問題:
1./vendor/bin/pint
1./vendor/bin/pint
也可以針對特定檔案或目錄來執行 Pint:
1./vendor/bin/pint app/Models23./vendor/bin/pint app/Models/User.php
1./vendor/bin/pint app/Models23./vendor/bin/pint app/Models/User.php
Pint 會列出其更新的檔案列表。只要在呼叫 Pint 時提供 -v
選項,就可以檢視更多關於 Pint 所做出更改的詳情:
1./vendor/bin/pint -v
1./vendor/bin/pint -v
若只想讓 Pint 偵測程式碼中的 Coding Style 錯誤而不實際更改檔案,可以使用 --test
選項:
1./vendor/bin/pint --test
1./vendor/bin/pint --test
若要根據 Git 來讓 Pint 只修改包含未 Commit 更改的檔案,可使用 --dirty
選項:
1./vendor/bin/pint --dirty
1./vendor/bin/pint --dirty
設定 Pint
剛才也提到過,Pint 不需要任何設定檔。不過,若有需要更改預設、規則、或是要檢查的資料夾,可在專案根目錄建立一個 pint.json
檔:
1{2 "preset": "laravel"3}
1{2 "preset": "laravel"3}
此外,若要使用特定資料夾中的 pint.json
檔,可在呼叫 Pint 時提供 --config
選項:
1pint --config vendor/my-company/coding-style/pint.json
1pint --config vendor/my-company/coding-style/pint.json
預設
「預設 (Preset)」定義了一組可用來修正程式碼中 Coding Style 的規則。預設情況下,Pint 使用了 laravel
預設,這個預設遵守 Laravel 的主導性 Coding Style。不過,也可與提供 --preset
選項給 Pint 來指定不同的預設:
1pint --preset psr12
1pint --preset psr12
若有需要,也可以在專案的 pint.json
檔案中設定預設:
1{2 "preset": "psr12"3}
1{2 "preset": "psr12"3}
Pint 目前支援的預設有:laravel
、per
、psr12
、symfony
。
規則
「規則 (Rule)」是 Pint 要用來修正程式碼 Coding Style 問題的樣式準則。剛才提到過,「預設」預先定義了一組規則,這些規則應該適用於大多數的 PHP 專案,因此你通常不需要擔心個別的規則。
不過,若有需要,也可以在 pint.json
檔中啟用或禁用特定的規則:
1{2 "preset": "laravel",3 "rules": {4 "simplified_null_return": true,5 "braces": false,6 "new_with_braces": {7 "anonymous_class": false,8 "named_class": false9 }10 }11}
1{2 "preset": "laravel",3 "rules": {4 "simplified_null_return": true,5 "braces": false,6 "new_with_braces": {7 "anonymous_class": false,8 "named_class": false9 }10 }11}
Pint is built on top of PHP CS Fixer. Therefore, you may use any of its rules to fix code style issues in your project: PHP CS Fixer Configurator.
排除檔案或資料夾
預設情況下,Pint 會檢查專案中除了 vendor
目錄以外的所有 .php
檔案。若有需要排除其他目錄,可使用 exclude
設定選項:
1{2 "exclude": [3 "my-specific/folder"4 ]5}
1{2 "exclude": [3 "my-specific/folder"4 ]5}
若有需要排除所有符合特定檔名規則的檔案,可使用 notName
選項:
1{2 "notName": [3 "*-my-file.php"4 ]5}
1{2 "notName": [3 "*-my-file.php"4 ]5}
若有需要排除特定路徑的檔案,可使用 notPath
設定選項:
1{2 "notPath": [3 "path/to/excluded-file.php"4 ]5}
1{2 "notPath": [3 "path/to/excluded-file.php"4 ]5}