書籍「Laravelの教科書」Laravel13対応サポートガイド公開中 → ダウンロードはこちら

Laravel Pintでコードをきれいにする

Laravel・PHP豆知識・トラブル対策

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に特化しているため、通常、十分な機能を提供します。

手軽に美しくしたいときに、試してみてくださいね。

下記の公式マニュアルも参考にしてください。

Laravel・PHP豆知識・トラブル対策Laravel自動処理

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる
 

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版Laravel13への対応に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel13に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した本を書きました。 書店やAmazon等のオンラインショップにて販売中
最新版Laravel13対応用サポートガイド(PDF)あり

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。
最新版Laravel13対応用
サポートガイド(PDF)あり

書籍の詳細を見てみる
シェアする
Twitter始めました。

コメント

タイトルとURLをコピーしました