laravel/pintのルールはデフォルトが
いちばんいいのですが
自分好みに合わせたいならどうするのだろうと思って
試してみました
環境
macOS Sonoma v14.5
docker desktop for mac v4.37.2
前提
sailを利用してプロジェクトが作成済みであること
プロジェクト作成についてはこちらを参考にしました
https://laravel.com/docs/11.x/installation#sail-on-macos
初期状態
composer.jsonを確認して、laravel/pint
があれば有効化できています
laravel/pintが見つからない場合
インストールが必要です
sail composer require laravel/pint --dev
スタイルチェックしてみる
コンテナを起動後、スタイルチェックを実行してみます
# コンテナを起動
> sail up -d
# スタイルチェック
> sail pint
..........................
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Laravel
PASS .................................................................................................................................. 26 files
一応通りました
デフォルトとなっているスタイルルールはこちらのようです
スタイルルールをカスタムする
1. プロジェクトフォルダ直下にpint.jsonを作成
pint.json
{
// デフォルトで読み込み
"preset": "laravel",
// カスタムルール
"rules": {
// ルールをオブジェクトごとに書いていく
}
}
2. ルールを拡張する
デフォルトで定義されているルールが上書きされます
- 半角スペース設定
例えば以下のように=>
を縦そろえしようと
id
のあと半角スペースを2つ以上書いて調整するとスタイルエラーが表示されます、
半角スペース1つであることをルールとしているためです$value = [ 'id' => 1, 'value' => 'dummy', ];
=>
が含まれる行はインデントを無視するように変更しますpint.json{ "preset": "laravel", "rules": { "binary_operator_spaces": { "default": "single_space", "operators": { "=>": null } }, } }
上記のほかにもoperators
に設定した任意の文字列が含まれる行の半角スペース設定を無視できます
- phpunitのテスト関数名
テスト関数名をキャメルケースで書くか、スネークケースで書くか指定ができます
pint.json
{
"preset": "laravel",
"rules": {
"php_unit_method_casing": {
"case": "camel_case"
},
}
}
なにも指定しない場合、どちら(キャメルケース/スネークケース)で書いてもチェックは無視されます
pint.json
{
"preset": "laravel",
"rules": {
"php_unit_method_casing": false
}
}
参考
https://laravel.com/docs/11.x/pint
感想
ルールが厳しすぎると思うことがあれば
カスタムしたほうが(精神的に)いいかもしれません