Laravel Pint¶
はじめに¶
Laravel Pint は、ミニマリスト向けのオピニオンベースのPHPコードスタイルフィックスツールです。PintはPHP-CS-Fixerの上に構築されており、コードスタイルをクリーンで一貫性のある状態に保つことを簡単にします。
Pintはすべての新しいLaravelアプリケーションに自動的にインストールされるため、すぐに使用を開始できます。デフォルトでは、Pintは設定を必要とせず、Laravelのオピニオンベースのコーディングスタイルに従ってコードスタイルの問題を修正します。
インストール¶
PintはLaravelフレームワークの最近のリリースに含まれているため、通常はインストールが不要です。ただし、古いアプリケーションの場合は、Composerを介してLaravel Pintをインストールできます:
Pintの実行¶
プロジェクトのvendor/bin
ディレクトリにあるpint
バイナリを呼び出すことで、Pintにコードスタイルの問題を修正させることができます:
特定のファイルやディレクトリに対してPintを実行することもできます:
Pintは更新するすべてのファイルの詳細なリストを表示します。Pintの変更についてさらに詳細を表示するには、Pintを呼び出す際に-v
オプションを指定します:
Pintにファイルを実際に変更せずにコードスタイルのエラーを検査させたい場合は、--test
オプションを使用できます。コードスタイルのエラーが見つかった場合、Pintはゼロ以外の終了コードを返します:
Gitに基づいて未コミットの変更があるファイルのみをPintに修正させたい場合は、--dirty
オプションを使用できます:
コードスタイルのエラーを修正するファイルがある場合にゼロ以外の終了コードで終了するようにPintに指示したい場合は、--repair
オプションを使用できます:
Pintの設定¶
前述のように、Pintは設定を必要としません。ただし、プリセット、ルール、または検査対象のフォルダをカスタマイズしたい場合は、プロジェクトのルートディレクトリにpint.json
ファイルを作成することで行うことができます:
また、特定のディレクトリからpint.json
を使用したい場合は、Pintを呼び出す際に--config
オプションを指定できます:
プリセット¶
プリセットは、コードスタイルの問題を修正するために使用される一連のルールを定義します。デフォルトでは、Pintはlaravel
プリセットを使用し、Laravelのオピニオンベースのコーディングスタイルに従って問題を修正します。ただし、Pintに--preset
オプションを指定することで異なるプリセットを指定できます:
また、プロジェクトのpint.json
ファイルでプリセットを設定することもできます:
Pintが現在サポートしているプリセットは、laravel
、per
、psr12
、symfony
、およびempty
です。
ルール¶
ルールは、Pintがコードスタイルの問題を修正するために使用するスタイルガイドラインです。前述のように、プリセットはほとんどのPHPプロジェクトに最適な事前定義されたルールのグループであるため、通常は個々のルールについて心配する必要はありません。
ただし、必要に応じて、pint.json
ファイルで特定のルールを有効または無効にしたり、empty
プリセットを使用してルールを最初から定義したりできます:
{
"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 Configurator。
ファイル / フォルダの除外¶
デフォルトでは、Pintはvendor
ディレクトリ内のファイルを除くすべての.php
ファイルを検査します。さらにフォルダを除外したい場合は、exclude
設定オプションを使用して行うことができます:
特定の名前パターンを含むすべてのファイルを除外したい場合は、notName
設定オプションを使用して行うことができます:
ファイルの正確なパスを指定してファイルを除外したい場合は、notPath
設定オプションを使用して行うことができます:
継続的インテグレーション¶
GitHub Actions¶
Laravel Pintを使用してプロジェクトのリンティングを自動化するには、GitHub Actionsを設定して、新しいコードがGitHubにプッシュされるたびにPintを実行できます。まず、GitHubのSettings > Actions > General > Workflow permissionsでワークフローに「Read and write permissions」を付与してください。次に、.github/workflows/lint.yml
ファイルを以下の内容で作成します:
name: Fix Code Style
on: [push]
jobs:
lint:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: [8.3]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: json, dom, curl, libxml, mbstring
coverage: none
- name: Install Pint
run: composer global require laravel/pint
- name: Run Pint
run: pint
- name: Commit linted files
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Fixes coding style"