修正したファイルだけPHP_CodeSnifferでチェックする


PHP_CodeSniffer (phpcs)を使ってコードのPSR2のフォーマットチェックをする際、
普段からphpcsを使っているプロジェクトで無いと警告が大量に出て見切れません。

そこで、git diffを使って、今回修正したファイルだけphpcsでチェックすることにしました。

起点ブランチを作る

まず、修正の起点ブランチを用意します。
起点ブランチとは、phpcsでチェックしたい修正をし始める前の状態のブランチです。

他の人が更新していなければ既存のマージ先ブランチ(master, develop等)で良いですが、
他の人がマージ先ブランチを更新していた場合はgit diffで他の人の修正分も差分として出てしまうのでダメです。
(自分の修正分だけをgit diffで出すオプションはたぶん無いはず)

その場合はgit logで自分が修正を始めた1つ前のコミットIDを確認して、
git checkout -b tempBranch 『コミットID』でブランチを作ってしまうのが簡単だと思います。
tempBranchの部分は作成する起点ブランチ名なので、なんでも良いです。

phpcsでチェックする

起点ブランチが用意できたら早速phpcsでチェックします。
チェックしたいブランチになっている状態で以下コマンドを実行します。

git diff 『起点ブランチ』 --name-only | xargs phpcs --standard="PSR2"

これで修正したファイルについてのみphpcsを実行できました。
今回かPSR2のチェックをしていますが、そこはプロジェクトで採用している基準に合わせて変更してください。

※補足

phpcsの実行パスについては自分の環境に合わせて修正してください。
例えばcomposerでプロジェクトに入れたphpcsを利用する場合は./vendor/bin/phpcsという風になると思います。