Laravel 9.x Laravel Pint

イントロダクション

Laravel Pint(ピント:PHP+lint)は、ミニマリストのための主張を持った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オプションを使用します。

./vendor/bin/pint --test

もし、Gitへコミットされていない変更のあるファイルだけをPintに修正させたい場合は、--dirty オプションを使用します。

./vendor/bin/pint --dirty

Pintの設定

前述したように、Pintは設定を一切必要としません。しかし、プリセットやルール、インスペクトフォルダをカスタマイズしたい場合は、プロジェクトのルートディレクトリに、pint.jsonファイルを作成してください。

{
    "preset": "laravel"
}

また、特定のディレクトリにあるpint.jsonを利用したい場合は、Pintを起動する際に--configオプションを指定してください。

pint --config vendor/my-company/coding-style/pint.json

プリセット

プリセットは、コード内のスタイルの問題を修正するために使用するルールセットを定義しています。デフォルトでPintは、laravelプリセットを使用します。これは、Laravelの意見に基づいたコーディングスタイルに従って問題を修正するものです。しかし、Pintに--presetオプションを指定することで、別のプリセットも指定できます。

pint --preset psr12

お望みならば、プロジェクトのpint.jsonファイルにプリセットを設定できます。

{
    "preset": "psr12"
}

Pintが現在サポートしているプリセットは、laravelpsr12symfony です。

ルール

ルールは、コードのスタイルに関する問題を修正するためにPintが使用するスタイルのガイドラインです。前述したように、プリセットはあらかじめ定義されたルールのグループであり、ほとんどのPHPプロジェクトに最適であるため、通常、含まれる個々のルールについて心配する必要はありません。

しかし、必要に応じて、pint.jsonファイルで特定のルールの有効/無効を指定できます。

{
    "preset": "laravel",
    "rules": {
        "simplified_null_return": true,
        "braces": false,
        "new_with_braces": {
            "anonymous_class": false,
            "named_class": false
        }
    }
}

Pintは、PHP-CS-Fixer上に構築しています。したがって、プロジェクトのコードスタイルの問題を修正するため、いずれかのルールを使用できます。PHP-CS-Fixerの設定を参照してください。

ファイル/フォルダの除外

デフォルトでPintは、プロジェクト内のvendorディレクトリにあるものを除く、すべての.phpファイルを検査します。もし、より多くのフォルダを除外したい場合は、exclude設定オプションを使用して除外可能です。

{
    "exclude": [
        "my-specific/folder"
    ]
}

もし、指定した名前のパターンに一致するファイルをすべて除外したい場合は、notName設定オプションを使用します。

{
    "notName": [
        "*-my-file.php"
    ]
}

もし、ファイルの正確なパスを指定して除外したい場合は、notPath設定オプションを使用して除外できます。

{
    "notPath": [
        "path/to/excluded-file.php"
    ]
}

ドキュメント章別ページ

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる