Laravel Pintは、コマンドひとつで、スタイルを統一してくれる便利なライブラリです。
PHP CS FixerをLaravel用にしたものです。
「タグやインデントを整理したい」「ファイル間でスタイルを整えたい」と思っていたら、ぜひお試しください。
Laravel Pintのインストール
Laravel9以降は、デフォルトで入っています。なので何もしなくてOKですが、古いLaravelご利用の場合には、下記でインストールできます。
1 |
composer require laravel/pint --dev |
Laravel Pintの使い方
では早速Laravel Pintを使ってみます。実行コマンドはこちらです。このコマンドを実行すると、コードを自動で修正してくれます。
1 |
./vendor/bin/pint |
修正箇所を確認したいだけの場合は、以下のコマンドで修正前の状態を確認できます。
1 |
./vendor/bin/pint --test |
特定のディレクトリやファイルのみを対象にしたい場合は、次のように指定します。
【ディレクトリ指定】
1 |
./vendor/bin/pint app/Models |
【ファイル指定】
1 |
./vendor/bin/pint app/Models/User.php |
Laravel Pintでの修正例
どんなふうな修正があるか、お見せします。たとえば、下記のような、かなり統一感のないファイルがあったとします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request;use Illuminate\Support\Facades\Auth; // 不要な use の削除が必要 class UserController extends Controller { public function index(){ $users = Auth::user()->all(); // インデントとスペースの問題 return view('users.index',compact('users') ); } public function updateUser(Request $request,$id) { $user=Auth::user()->find($id); // インデントの問題とスペースの欠如 $user->name=$request->name; // スペースの問題 $user->save();return redirect()->route('users.index'); // 改行の必要 } } |
下記コマンドで、UserController.phpの修正点を確認できます。
1 |
./vendor/bin/pint --test app/Http/Controllers/UserController.php |
こちらが実行結果です。修正点盛沢山ですね
では次に、修正を行います。
1 |
./vendor/bin/pint app/Http/Controllers/UserController.php |
このとおり、美しくなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class UserController extends Controller { public function index() { $users = Auth::user()->all(); // インデントとスペースの問題解決 return view('users.index', compact('users')); } public function updateUser(Request $request, $id) { $user = Auth::user()->find($id); // インデントの問題とスペースの欠如解決 $user->name = $request->name; // スペースの問題解決 $user->save(); // 改行の追加 return redirect()->route('users.index'); } } |
Laravel Pintの修正ルールをカスタマイズ
デフォルトのままのルールでも十分使えますが、もしLaravel Pintのデフォルトのルールを変更したい場合には、プロジェクト直下にpint.jsonファイルを作成します。
たとえば、デフォルトルールでは使用していないuse宣言は削除します。ですがuse宣言を削除したくない場合は、pint.jsonファイルを作り、下記のようにいれます。
【pint.json】
1 2 3 4 5 |
{ "rules": { "no_unused_imports": false } } |
なお、デフォルトのルールを確認したいときは、github/laravel pintのコードを確認してください。
resources/presets/laravel.phpの中をチェックします。たとえば先ほどのuse宣言に関する部分は、下記のようになっています。
注意点:ライブラリが更新されることがある
この記事を書く際に使用したプロジェクトは、1週間前に作成したもので、そのときにPintが一緒に入っていました。
そしてその後 Laravel Pintに更新があり、その更新でPintのデフォルト設定が変わっていました。
つまり、プロジェクトで使用しているpresetの設定と、github上で確認した最新のLaravel Pintのpresetが異なっていました。
そうとは知らずテストを行った結果、思い通りの結果が得られなかったので少し悩みました^^;
このような問題が起こることもありますので、GitHubでLaravel Pintを確認す際には、プロジェクトにインストールされているバージョンと同じものをチェックしてくださいね。
2024年4月26日現在、Laravel pintの最新バージョンは1.15.2です。
composer.lockファイルを見ると、プロジェクトにインストールされているLaravel pintのバージョンを確認できます。
さいごに
Laravel Pintの使い方をご紹介しました。
PHP-CS-Fixerに比べて、Laravel Pintでカスタマイズできる範囲は狭くなりますが、Laravelに特化しているため、通常、十分な機能を提供します。
手軽に美しくしたいときに、試してみてくださいね。
下記の公式マニュアルも参考にしてください。