PHPのコードの品質を高めるためのツール
今回は、PHPのコードの品質を高めるためのツールを7つご紹介致します。静的解析ツールを用いることで、人力で把握しきれない、コードの依存関係などを確認することができるようになります。
また、静的解析ツールをCIに登録することで、自分だけではなく、プロジェクト全体のコードの品質を上げることができます。
PHPStorm
PHPStormは、コードフォーマッターやPHPの静的解析機能が標準搭載されているIDEです。リアルタイムでコードの解析し指摘してくれるため、まるで先輩とペアプロをしているような感覚になれます。現状PHPで開発する場合は、PHPStorm一択と言って良いでしょう。
Php Inspectionsを導入するとより高度な静的解析ができるようになるので導入することをおすすめします。
PHPStan
PHPStanは、PHP用の静的解析ツールです。PHPStanではチェックの厳密性をルールレベルが0~8で設定されています。理想は最高レベルの8が通過することですが、最低レベルのレベル0でも依存関係確認などを行っているのでバグの検知は十分に行えますので、まずはレベル0に設定して、順々とレベルを上げって行ければ良いと思います。
PHP-CS-Fixer
PHP-CS-FixerはPSRに準拠したコードフォーマットに自動修正するためのコードフォーマッターです。プロジェクト内でのコードフォーマットを統一するためにCIで自動実行されるように設定しておくと良いでしょう。
Psalm
PsalmはPHPStanより型に厳しい静的解析ツールです。こちらもPHPStan同様、最低レベルから初めて順々にレベルを上げって行ければ良いと思います。
Rector
RectorはPHPやフレームワークのアップデートにお向きを置いた静的解析ツールです。古い書き方で書かれているコードを検出し、リファクタリングすることができます。
PHPMD
PHPMDは依存関係やコードの長さなどからコードの複雑性を評価し指摘してくれるツールです。ネーミング規則(ケース)などもチェックすることができます。
PHPUnit
PHPUnitはユニットテスト用のフレームワークです。上記のツールはすべて静的解析ツールでしたが、静的解析だけではビジネスロジックに不具合がないかどうかはわかりません。バグを生み出さないためには、ユニットテストは必ず必要です。
初めて静的解析を導入する場合は?
初めて静的解析を導入するときには、沢山のツールが有り迷われるかもしれません。PHPStormでまだ開発をしていない場合には、PHPStormをまず導入しましょう。特別な設定は必要なくデフォルトのままで十分に使用することができ、直ぐに導入することができます。オートコンプリートと充実しており、作業が格段に快適になるでしょう。
既にPHPStormで開発している方は、PHPStanとPHP-CS-Fixerを導入して見ると良いでしょう。どちらも他のツールに比べ緩めのチェックですが、コードの品質を高めることは十分にできるかと思います。