🥹
Laravel Pintという存在を知り感動...

「PSR-12に準拠するよう、コード整形をしてからコミットされるようにしたい!」
おさるさんはこんなことを思いました。
調べてみるとLaravelにはPintという便利機能があるそう…
使ってみて便利だったので記録しておく📝
🚀 セッティング
Pintが入っているかを確認する/インストールする
下記のコマンドを実行して、pintがインストールされているか確認する。
composer show laravel/pint
もし入ってなかったら下記のコマンドを実行してインストールしましょう!
composer require laravel/pint --dev
pint.jsonを作成する
ルートディレクトリにpint.jsonを作成します。
そして下記のようにPSR-12に則り、コード整形を行うよう設定します。
{
"preset": "psr12",
"exclude": [
"storage",
"vendor"
]
}
pre-commitフックを作成する
.git/hooks/pre-commitを作成し、下記のコードをコピペする。
#!/bin/sh
echo "🐒 Running Laravel Pint on staged PHP files..."
# ステージ済みのPHPファイルだけを取得して整形
echo "> Get staged PHP files..."
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.php$')
if [ -z "$STAGED_FILES" ]; then
echo "> No PHP files to format."
exit 0
fi
echo "> Found PHP files:"
echo "$STAGED_FILES"
# Pint をステージ済みファイルに対して実行
./vendor/bin/pint --quiet $STAGED_FILES
echo "> Success!"
# 整形によって変更があったファイルを再ステージ
echo "$STAGED_FILES" | xargs git add
下記のコマンドでフックの実行権限を設定してあげる。
chmod +x .git/hooks/pre-commit
ちなみに--quietというオプションはChatGPTくんによると、
- 実行時の出力を最小限に抑える
- 整形処理中の詳細なログや警告を表示せず、
- エラーや致命的な問題だけを表示するモード
らしい。
完了!
これでコミットのたびにPintによる自動整形が実行されます!🎉
正確にはpre-commitフック実行 → 整形 → git add → コミットという流れです。
📚 まとめ
なんとも簡単にコード整形ができました🙌
Laravelは色々と便利すぎて、もはや困る...笑
✒️ 追記
2025/07/31
pre-commitフックを実行させずにコミットしたい場合は下記にてコミットする。
git commit --no-verify -m "コミットメッセージ"
Discussion