0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

laravel/pintを使ってスタイルルールをカスタムしてチェックする

Posted at

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

感想

ルールが厳しすぎると思うことがあれば
カスタムしたほうが(精神的に)いいかもしれません

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?