
この記事では、PHP Insightsを使ってLaravelプロジェクトのコード品質を分析する方法について紹介しています!
PHP Insightsとは
PHP Insightsとは、「PHPプロジェクトのコード品質を解析してくれるツール」で、以下のような特徴が挙げられます。
- コード品質とコーディングスタイルの分析を行う
- コードアーキテクチャとその複雑さの美しい概観
- Laravel、Symfony、Yii、Magento などですぐに使えるように設計されている
- 信頼性が高く、疎結合で、シンプルでクリーンなコードを作るためのチェック機能を内蔵している
公式ドキュメントやGitHubリポジトリは下記。
- 公式:phpinsights
- GitHub:nunomaduro/phpinsights
PHP Insightsを使ってLaravelプロジェクトのコード品質を分析してみる
nunomaduro/phpinsightsをインストール
README.mdに記載されている手順通り、nunomaduro/phpinsightsのインストールを行います。
$ composer require nunomaduro/phpinsights --dev
Laravel用に設定ファイルをコピーする
Laravelを使っていないPHPだけのプロジェクトの場合は、nunomaduro/phpinsightsをインストールした後、下記のコマンドでphpinsightsを実行することができます。
$ ./vendor/bin/phpinsights
Laravelのプロジェクトでphpinsightsを使う場合は、設定ファイルをコピーしてあげる必要があります。
$ php artisan vendor:publish --provider="NunoMaduro\PhpInsights\Application\Adapters\Laravel\InsightsServiceProvider"
Copied File [/vendor/nunomaduro/phpinsights/stubs/laravel.php] To [/config/insights.php]
Publishing complete.
これで、「/vendor/nunomaduro/phpinsights/stubs/laravel.php」が「/config/insights.php」にコピーされました。
phpinsightsを実行する

Laravelプロジェクトでphpinsightsを実行する準備ができたので、phpinsightsを実行してみます!
$ php artisan insights
以下が実行結果。

評価項目が
と分かれていて、それぞれの%が表示されており、かなり見やすいですね!
評価のスコアも以下のように「赤・黄・緑」に分かれています。
- 赤:1 – 49
- 黄:50 – 79
- 緑:80 – 100
Enterキーを押下すると詳細なコードのissueを確認することができます。

エラーが出ているディレクトリ・ファイルを自動的に修正する
エラーが起きているディレクトリやファイルを自動的に修正することができます。Laravelプロジェクトの場合は、以下のようにpathとfixオプションをつけてあげればOK。
$ php artisan insights {対象のディレクトリ・ファイルパス} --fix
参考:Fixing errors automatically
GitHub Actionsを使用している場合
Github Actionsを使用している場合は、–format=github-actionオプションを付けてphpinsightsを起動すると、PRに課題を含むアノテーションが追加されます。
# .github/workflows/pr.yml
name: CI
on:
- pull_request
jobs:
phpinsights:
runs-on: ubuntu-latest
name: PHP Insights checks
steps:
- uses: actions/checkout@v2
- uses: shivammathur/setup-php@v2
with:
php-version: 8.0
- run: composer install --prefer-dist --no-progress --no-suggest
- run: vendor/bin/phpinsights -n --ansi --format=github-action
PHP Insightsを使ってみてのまとめ

ここまで、PHP Insightsを使ってLaravelプロジェクトのコード品質を分析する方法について紹介してきました
PHP Insightsを実行すると各評価項目のスコアが%で表示されるので、結果が視覚的に分かりやすくて良いですね。赤や黄色のスコアの場合は、なんとか緑のスコアを目指したいものです。
コメント