旧式Laravelでphp-cs-fixerベースのpintを使う
pint: php-cs-fixerベースのLaravel公式Linter
PSR12というコーディング規約があるが、
コードフォーマットにほとんど影響しないもので、
縛りプレイが大好きな会社はこれに満足しない。
(PERというのもあるが余り普及してないっぽい)
私のような手抜き開発者は誰かが決めたものでええやんと思ってしまう。
Laravelが公式で規約を決めてくれて、
ツールまで用意してくれている。
それが
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.(Laravel Pintは、ミニマリストのためのPHPコードスタイルフィクサーです。PintはPHP-CS-Fixerの上に構築されており、コードスタイルをクリーンで一貫性のあるものに保つことができます。)
PHP-CS-FixerベースにLaravelの規約を積んだツール。
PHP_CodeSnifferで独自フォーマットを考えるより、
公式に任せた方がいいのですぐに使いたいが条件がある。
- PHP8.1以上
- Laravel9以上
手元の環境がPHP8.0
, Laravel8
('ω') ....
条件足りないけど使えないかなぁ。
php-cs-fixerの拡張なら捏ね繰り回せばなんとか...
docker越しならいけるか。
ということでdocker経由で使う方法を考えてみた。
ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪
------------------- ↓ 本題はここから ↓-------------------
Laravel Pintのインストール
composerでインストールするとバージョンで弾かれるので、
pharファイルを使う
curl -LO https://github.com/laravel/pint/releases/latest/download/pint.phar
docker run
PHP8.1以上(用意したのはPHP8.2)のdockerイメージで、
サイズの小さいalpine版を使用
一端test
モードで実行
docker run --rm -it -v $(pwd):/app -w /app php:8.2-cli-alpine php ./pint.phar --test app/Logging/CustomizeFormatter.php
──────────────────────────────────────────────────────────────────────────────────────────────────────────── Laravel
FAIL ..................................................................................... 1 file, 1 style issue
⨯ app/Logging/CustomizeFormatter.php class_attributes_separation, phpdoc_scalar, no_superfluous_phpdoc_tags, phpdoc…
(/・ω・)/ イケルやん
------------------- ↓ 後書きはここから ↓-------------------
ファイルを指定しないと全ファイル一斉置換という暴挙に出るので、
使う際はかなり注意する必要がある。
参考:
Discussion