1. Larastanとは
LarastanはPHPの静的型解析ツールであるPHPStanをベースにしており、
アプリケーション内のコードを解析して型の整合性やエラーをチェックします。
これにより、潜在的な型関連のバグやエラーを早期に発見し、修正することができます。
2. 導入方法
2.1 インストール
Composerを使用してLarastanをプロジェクトに追加。
PHPのバージョン < 8.0の場合
composer require nunomaduro/larastan:^1.0 --dev
PHPのバージョン >= 8.0の場合
composer require nunomaduro/larastan:^2.0 --dev
2.2 設定ファイルの作成
プロジェクトのルートディレクトリに設定ファイルphpstan.neon
を設置。
phpstan.neon
includes:
- ./vendor/nunomaduro/larastan/extension.neon
parameters:
paths:
- app/
# The level 9 is the highest level
level: 0
excludePaths:
- ./*/*/FileToBeExcluded.php
checkMissingIterableValueType: false
checkGenericClassInNonGenericObjectType: false
2.3 各種設定
paths:
解析をかけるpathを指定します。例えばresources/views
配下のファイルを解析に明けたければ以下のようになります。
paths:
- resources/views
level:
0~9のレベル別に解析される粒度を選択できます。公式ドキュメント
高いレベルは低いレベルのエラーを含みます。
2.4 実行
プロジェクトルートディレクトリでコマンドを実行。
./vendor/bin/phpstan analyse
メモリが足りない場合は上限を指定して実行します。
./vendor/bin/phpstan analyse --memory-limit 1G
2.5 実行結果
エラーがない場合
[OK] No errors
エラーがある場合
------ ----------------------------------------------------------------------------------------
Line Http/Controllers/Member/MemberController.php
------ ----------------------------------------------------------------------------------------
48 Access to an undefined property App\Http\Controllers\Member\MemberController::$schema.
------ ----------------------------------------------------------------------------------------
[ERROR] Found 1 error
エラーの箇所が表示されます。
3. 最後に
初めて静的解析ツールを使用しましたが、エディターの拡張機能や目視だけでは発見しきれないエラーを早期に発見することができました。こうした便利なツールを賢く効率的に使っていきたいものです。