在專案開發時,我們透過了自動化測試,幫我們確認專案的功能正確。甚至在之前,我們還介紹了 Laravel Dusk 這個套件,可以用來協助我們進行 Browser Automation Test,實際用瀏覽器運作網頁,看看效果是不是如我們預期。
不過,專案開發除了功能正確以外,還有可讀性要高,才能比較好維護的這個面向。
今天,我們就來介紹一下 Laravel 幫我們確認 code style 的套件:Laravel Pint!
首先,是安裝套件,我們一樣只安裝在開發階段
./vendor/bin/sail composer require laravel/pint --dev
Laravel Pint 安裝好了之後,就可以直接執行了
./vendor/bin/pint
執行後會看到類似以下的報告
...✓....................✓.............✓✓.................✓....................✓.
────────────────────────────────────────────────────────────────────────────────────────────────────── Laravel
FIXED ..................................................................... 80 files, 6 style issues fixed
✓ app/Http/Controllers/InspireController.php braces, Laravel/laravel_phpdoc_alignment
✓ app/Jobs/ProcessPodcast.php no_unused_imports
✓ app/Mail/OrderShipped.php no_unused_imports
✓ app/Services/InspireService.php blank_line_before_statement
✓ routes/web.php braces, curly_braces_position, single_quote, ordered_imports
✓ tests/Unit/InspireControllerTest.php braces, curly_braces_position, ordered_imports
Laravel Pint 不僅僅列出所有的問題,並且還一起整理好了!
重新執行時會看到
................................................................................
────────────────────────────────────────────────────────────────────────────────────────────────────── Laravel
PASS ............................................................................................ 80 files
如果你不希望 Laravel Pint 自動修正問題,可以加上 --test
參數
./vendor/bin/pint --test
如果你希望使用特定的規則檢查,比方說 psr12
,可以用 --preset
指定
./vendor/bin/pint --preset psr12
雖然理想上,專案內的所有程式碼,都應該要能通過檢查。不過有時候還是會有檔案暫時無法通過。這時候我們可能會希望能忽略這些檔案。
這時,我們可以透過撰寫 pint.json
來對專案進行設置
首先,我們在專案資料夾內建立 pint.json
{
"preset": "psr12"
}
這邊指定了我們的規則是 psr12
。
接著,我們可以利用 notPath
,設置某個檔案要略過檢查
"notPath": [
"path/to/excluded-file.php"
]
也可以利用 notName
,設置該名稱的檔案都略過檢查。這邊可以使用樣式
"notName": [
"*Test.php"
]
如果希望直接略過某資料夾,可以用 exclude
"exclude": [
"my-specific/folder"
]
利用 Laravel Pint,我們就可以快速的保證專案的 code style 一致,並且在不一致時快速的修正了!是不是很方便呢
今天有關 Laravel Pint 這個套件,就介紹到這邊,各位明天見!