イントロダクションIntroduction
Laravel Pint(ピント:PHP+lint)は、ミニマリストのための主張を持ったPHPコードスタイルフィクサです。PintはPHP-CS-Fixer上に構築されており、あなたのコードスタイルがクリーンで一貫したものになるよう、シンプルにします。Laravel Pint[https://github.com/laravel/pint] is an opinionated PHP code style fixer for minimalists. Pint is built on top of PHP-CS-Fixer and makes it simple to ensure that your code style stays clean and consistent.
Pintは、すべての新しいLaravelアプリケーションに自動的にインストールされますので、すぐに使い始めることができます。デフォルトで、Pintは設定を必要とせず、Laravelの主張を取り入れたコーディングスタイルに従い、コードスタイルの問題を修正します。Pint is automatically installed with all new Laravel applications so you may start using it immediately. By default, Pint does not require any configuration and will fix code style issues in your code by following the opinionated coding style of Laravel.
インストールInstallation
PintはLaravelフレームワークの最近のリリースに含まれているため、通常インストールは不要です。しかし、古いアプリケーションでは、Composer経由でLaravel Pintをインストールできます。Pint is included in recent releases of the Laravel framework, so installation is typically unnecessary. However, for older applications, you may install Laravel Pint via Composer:
composer require laravel/pint --dev
Pintの実行Running Pint
プロジェクトのvendor/bin
ディレクトリにある、pint
バイナリを起動し、Pintへコードスタイルの問題を修正するように指示できます。You can instruct Pint to fix code style issues by invoking the pint
binary that is available in your project's vendor/bin
directory:
./vendor/bin/pint
また、特定のファイルやディレクトリに対してPintを実行することもできます。You may also run Pint on specific files or directories:
./vendor/bin/pint app/Models
./vendor/bin/pint app/Models/User.php
Pintは更新した全ファイルの完全なリストを表示します。Pintを起動する際に、-v
オプションを指定すれば、Pintが行う変更についてさらに詳しく確認できます。Pint will display a thorough list of all of the files that it updates. You can view even more detail about Pint's changes by providing the -v
option when invoking Pint:
./vendor/bin/pint -v
もし、実際にファイルを変更せず、Pintにコードのスタイルエラーを検査させたい場合は、--test
オプションを使用します。Pintはコードスタイルのエラーを見つけた場合、0以外の終了コードを返します。If you would like Pint to simply inspect your code for style errors without actually changing the files, you may use the --test
option. Pint will return a non-zero exit code if any code style errors are found:
./vendor/bin/pint --test
もし、Gitへコミットされていない変更のあるファイルだけをPintに修正させたい場合は、--dirty
オプションを使用します。If you would like Pint to only modify the files that have uncommitted changes according to Git, you may use the --dirty
option:
./vendor/bin/pint --dirty
Pintにコードスタイルのエラーがあるファイルを修正させたいが、エラーを修正した場合にコードを0以外で終了させたい場合は、--repair
オプションを使用します。If you would like Pint to fix any files with code style errors but also exit with a non-zero exit code if any errors were fixed, you may use the --repair
option:
./vendor/bin/pint --repair
Pintの設定Configuring Pint
前述したように、Pintは設定を一切必要としません。しかし、プリセットやルール、インスペクトフォルダをカスタマイズしたい場合は、プロジェクトのルートディレクトリに、pint.json
ファイルを作成してください。As previously mentioned, Pint does not require any configuration. However, if you wish to customize the presets, rules, or inspected folders, you may do so by creating a pint.json
file in your project's root directory:
{
"preset": "laravel"
}
また、特定のディレクトリにあるpint.json
を利用したい場合は、Pintを起動する際に--config
オプションを指定してください。In addition, if you wish to use a pint.json
from a specific directory, you may provide the --config
option when invoking Pint:
./vendor/bin/pint --config vendor/my-company/coding-style/pint.json
プリセットPresets
プリセットは、コード内のスタイルの問題を修正するために使用するルールセットを定義しています。デフォルトでPintは、laravel
プリセットを使用します。これは、Laravelの意見に基づいたコーディングスタイルに従って問題を修正するものです。しかし、Pintに--preset
オプションを指定することで、別のプリセットも指定できます。Presets define a set of rules that can be used to fix code style issues in your code. By default, Pint uses the laravel
preset, which fixes issues by following the opinionated coding style of Laravel. However, you may specify a different preset by providing the --preset
option to Pint:
./vendor/bin/pint --preset psr12
お望みならば、プロジェクトのpint.json
ファイルにプリセットを設定できます。If you wish, you may also set the preset in your project's pint.json
file:
{
"preset": "psr12"
}
Pintが現在サポートしているプリセットは、laravel
、per
、psr12
、symfony
、empty
です。Pint's currently supported presets are: laravel
, per
, psr12
, symfony
, and empty
.
ルールRules
ルールは、コードのスタイルに関する問題を修正するためにPintが使用するスタイルのガイドラインです。前述したように、プリセットはあらかじめ定義されたルールのグループであり、ほとんどのPHPプロジェクトに最適であるため、通常、含まれる個々のルールについて心配する必要はありません。Rules are style guidelines that Pint will use to fix code style issues in your code. As mentioned above, presets are predefined groups of rules that should be perfect for most PHP projects, so you typically will not need to worry about the individual rules they contain.
しかし、必要に応じて、pint.json
ファイルで特定のルールの有効/無効を指定できますし、empty
プリセットを使用し、ゼロからルールを定義することもできます。However, if you wish, you may enable or disable specific rules in your pint.json
file or use the empty
preset and define the rules from scratch:
{
"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 is built on top of PHP-CS-Fixer[https://github.com/FriendsOfPHP/PHP-CS-Fixer]. Therefore, you may use any of its rules to fix code style issues in your project: PHP-CS-Fixer Configurator[https://mlocati.github.io/php-cs-fixer-configurator].
ファイル/フォルダの除外Excluding Files / Folders
デフォルトでPintは、プロジェクト内のvendor
ディレクトリにあるものを除く、すべての.php
ファイルを検査します。もし、より多くのフォルダを除外したい場合は、exclude
設定オプションを使用して除外可能です。By default, Pint will inspect all .php
files in your project except those in the vendor
directory. If you wish to exclude more folders, you may do so using the exclude
configuration option:
{
"exclude": [
"my-specific/folder"
]
}
もし、指定した名前のパターンに一致するファイルをすべて除外したい場合は、notName
設定オプションを使用します。If you wish to exclude all files that contain a given name pattern, you may do so using the notName
configuration option:
{
"notName": [
"*-my-file.php"
]
}
もし、ファイルの正確なパスを指定して除外したい場合は、notPath
設定オプションを使用して除外できます。If you would like to exclude a file by providing an exact path to the file, you may do so using the notPath
configuration option:
{
"notPath": [
"path/to/excluded-file.php"
]
}
継続的インテグレーションContinuous Integration
GitHub ActionsGitHub Actions
Laravel Pintでプロジェクトのリントを自動化するには、GitHub Actionsを設定し、新しいコードをGitHubにプッシュするたびにPintを実行します。まず、Settings > Actions > General > Workflow permissionsで、GitHub内のワークフローへ、"Read and write permissions"を付与してください。次に、.github/workflows/lint.yml
ファイルを以下の内容で作成します。To automate linting your project with Laravel Pint, you can configure GitHub Actions[https://github.com/features/actions] to run Pint whenever new code is pushed to GitHub. First, be sure to grant "Read and write permissions" to workflows within GitHub at Settings > Actions > General > Workflow permissions. Then, create a .github/workflows/lint.yml
file with the following content:
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"