プロジェクトディレクトリの構成
.
├── compose.yml
├── infra
│ └── docker
│ ├── mysql
│ ├── nginx
│ └── php
├── README.md
└── src # Laravel project root dir
Laravel Pint
Laravel Pint のルール設定
Pintのおすすめルールはこちらの記事でご紹介しています。
PhpStorm
Settings...
> Tools
> File Watchers
+
> Choose Template
で Custom
を選択
ローカルで動かす
Name: Pint
File type: PHP
Scope: Project files
Program: $ProjectFileDir$/src/vendor/bin/pint
Arguments: $FileRelativePath$ --config $ProjectFileDir$/src/pint.json
Output paths to refresh: $FileRelativePath$
Working Directory: $ProjectFileDir$
Environment variables:
Advanced Options:
✅ Auto-save edited files to trigger the watcher
✅ Trigger the watcher on external changes
Trigger the watcher regardless of syntax errors
Create output file from stdout
プロジェクトディレクトリの直下にLaravelを配置してる場合は Program
の src
をディレクトリ部分を削除してもらえれば動くと思います。
Dockerで動かす
Name: Pint
File type: PHP
Scope: Project files
Program: docker
Arguments: compose exec app ./vendor/bin/pint
Output paths to refresh:
Working Directory:
Environment variables:
Advanced Options:
✅ Auto-save edited files to trigger the watcher
✅ Trigger the watcher on external changes
Trigger the watcher regardless of syntax errors
Create output file from stdout
Docker で動かす場合の例です。
src
ディレクトリを切ってしまったため、ライブテンプレート変数を使ってもうまく変更したファイルパスだけ指定するということができませんでした。
もし良い方法をご存知の方がいたら教えて下さい🙏
ただ、Pintはローカルで動かした方が速いのでパフォーマンス的にDockerで動かさなくても良いかな。
参考
- https://pleiades.io/help/phpstorm/using-file-watchers.html
- https://gilbitron.me/blog/running-laravel-pint-in-phpstorm
VSCode
Laravel Pint 拡張機能
Pint 手動実行
Command
+ Shift
+ P
でコマンドパレットを開く。
Format active workspace files using Laravel Pint
Format document using Laravel Pint
上記のコマンドを選択するとPintが適用される。
Pint 自動実行
.vscode/settings.json
ファイルを配置するとファイル保存時にPintが適用される。
.vscode/settings.json
{
"editor.formatOnSave": true,
"laravel-pint.enable": true,
"laravel-pint.enableDebugLogs": true,
"laravel-pint.configPath": "src/pint.json",
"[php]": {
"editor.defaultFormatter": "open-southeners.laravel-pint"
}
}