phpstan
実行コマンド
.sh
docker run -v `pwd`:/app -w /app ghcr.io/phpstan/phpstan analyse {解析対象のディレクトリ}
# (例)docker run -v `pwd`:/app -w /app ghcr.io/phpstan/phpstan analyse backend/packages
# ターミナル上でなく、テキストファイルに出力したい場合
docker run -v `pwd`:/app -w /app ghcr.io/phpstan/phpstan analyse {解析対象のディレクトリ} > phpstan.txt
▼動作確認
以下を実行してバージョンが表示されれば実行可能な状態
.sh
docker run -v `pwd`:/app -w /app ghcr.io/phpstan/phpstan analyse -V
> PHPStan - PHP Static Analysis Tool 1.6.7
phan
phan/dockerを使用します。
(追記)こっちでもできそう。
https://hub.docker.com/r/cloudflare/phan/
phpstanとは違い、少し準備が必要です。
【事前準備】
- 解析対象のソースコードのルートディレクトリに内に.phanディレクトリを作成
- config.phpファイルとlogディレクトリを作成
- config.phpで解析設定を行い、logディレクトリに解析結果が出力される
実行コマンド
.sh
docker run -v `pwd`:/mnt/src -v `pwd`/.phan/log:/mnt/log phanphp/phan -po /mnt/log/analysis.txt
参考
https://github.com/phan/phan/wiki/Getting-Started#from-a-docker-image
https://zenn.dev/big_tanukiudon/articles/9d3eead9ef49c4
さいごに
composerでインストールせず、別で環境を作って実行できるので「静的解析をちょっと試してみたい」というときに良いのかなと思います。
psalmについても同様の方法でできないか色々やってみたのですが現時点ではできていません!
良い方法をご存知の方がいたらコメントください
方法1「psalm.pharをインストールして実行する方法」
方法2「composerコンテナを作ってpsalmをインストールして実行する方法」
それでは!