Laravel Pintは、コマンドひとつで、スタイルを統一してくれる便利なライブラリです。
PHP CS FixerをLaravel用にしたものです。
「タグやインデントを整理したい」「ファイル間でスタイルを整えたい」と思っていたら、ぜひお試しください。
Laravel Pintのインストール
Laravel9以降は、デフォルトで入っています。なので何もしなくてOKですが、古いLaravelご利用の場合には、下記でインストールできます。
composer require laravel/pint --dev
Laravel Pintの使い方
では早速Laravel Pintを使ってみます。実行コマンドはこちらです。このコマンドを実行すると、コードを自動で修正してくれます。
./vendor/bin/pint
修正箇所を確認したいだけの場合は、以下のコマンドで修正前の状態を確認できます。
./vendor/bin/pint --test
特定のディレクトリやファイルのみを対象にしたい場合は、次のように指定します。
【ディレクトリ指定】
./vendor/bin/pint app/Models
【ファイル指定】
./vendor/bin/pint app/Models/User.php
Laravel Pintでの修正例
どんなふうな修正があるか、お見せします。たとえば、下記のような、かなり統一感のないファイルがあったとします。
<?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の修正点を確認できます。
./vendor/bin/pint --test app/Http/Controllers/UserController.php

こちらが実行結果です。修正点盛沢山ですね

では次に、修正を行います。
./vendor/bin/pint app/Http/Controllers/UserController.php

このとおり、美しくなります。
<?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】
{
"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に特化しているため、通常、十分な機能を提供します。
手軽に美しくしたいときに、試してみてくださいね。
下記の公式マニュアルも参考にしてください。



コメント