Laravel Pint
はじめに
Laravel Pint は、ミニマリストのための意見の強い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の変更に関するさらに詳細な情報を見るには、Pintを呼び出す際に-v
オプションを指定します。
./vendor/bin/pint -v
ファイルを実際に変更せずに、コードスタイルエラーについてコードを検査するだけにするには、--test
オプションを使用します。コードスタイルエラーが見つかった場合は、Pintはゼロ以外の終了コードを返します。
./vendor/bin/pint --test
Gitに従ってコミットされていない変更があるファイルのみを変更するには、--dirty
オプションを使用します。
./vendor/bin/pint --dirty
コードスタイルエラーのあるファイルを修正しますが、エラーが修正された場合はゼロ以外の終了コードで終了するには、--repair
オプションを使用します。
./vendor/bin/pint --repair
Pintの設定
前述のように、Pintは設定を必要としません。ただし、プリセット、ルール、または検査対象のフォルダをカスタマイズする場合は、プロジェクトのルートディレクトリにpint.json
ファイルを作成することで行えます。
{ "preset": "laravel"}
また、特定のディレクトリからpint.json
を使用する場合は、Pintを呼び出す際に--config
オプションを指定できます。
./vendor/bin/pint --config vendor/my-company/coding-style/pint.json
プリセット
プリセットは、コード内のコードスタイルの問題を修正するために使用できるルールセットを定義します。デフォルトでは、Pintはlaravel
プリセットを使用し、Laravelの意見の強いコーディングスタイルに従って問題を修正します。ただし、Pintに--preset
オプションを指定することで、別のプリセットを指定できます。
./vendor/bin/pint --preset psr12
プロジェクトのpint.json
ファイルでプリセットを設定することもできます。
{ "preset": "psr12"}
Pintで現在サポートされているプリセットは、laravel
、per
、psr12
、symfony
、empty
です。
ルール
ルールは、Pintがコード内のコードスタイルの問題を修正するために使用するスタイルガイドラインです。上記のように、プリセットはほとんどのPHPプロジェクトに最適な、事前に定義されたルールのグループであるため、通常はそれらに含まれる個々のルールについて心配する必要はありません。
ただし、必要に応じて、pint.json
ファイルで特定のルールを有効または無効にしたり、empty
プリセットを使用してルールを最初から定義したりできます。
{ "preset": "laravel", "rules": { "simplified_null_return": true, "array_indentation": false, "new_with_parentheses": { "anonymous_class": true, "named_class": true } }}
PintはPHP-CS-Fixerの上に構築されています。したがって、プロジェクト内のコードスタイルの問題を修正するために、そのルールを使用できます:PHP-CS-Fixer Configurator。
ファイル/フォルダの除外
デフォルトでは、Pintはvendor
ディレクトリを除く、プロジェクト内のすべての.php
ファイルを検査します。さらにフォルダを除外する場合は、exclude
設定オプションを使用します。
{ "exclude": [ "my-specific/folder" ]}
特定の名前パターンを含むすべてのファイルを除外する場合は、notName
設定オプションを使用します。
{ "notName": [ "*-my-file.php" ]}
ファイルへの正確なパスを指定してファイルを除外する場合は、notPath
設定オプションを使用します。
{ "notPath": [ "path/to/excluded-file.php" ]}
継続的インテグレーション
GitHub Actions
Laravel Pintを使用してプロジェクトの自動リンティングを行うには、新しいコードがGitHubにプッシュされるたびにPintを実行するようにGitHub Actionsを設定できます。まず、**設定 > Actions > 一般 > ワークフローの権限**で、GitHub内のワークフローに「読み取りと書き込みの権限」を付与してください。次に、次の内容を含む.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"