6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel】静的解析ツール「Larastan」の導入

Posted at

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. 最後に

初めて静的解析ツールを使用しましたが、エディターの拡張機能や目視だけでは発見しきれないエラーを早期に発見することができました。こうした便利なツールを賢く効率的に使っていきたいものです。

参考サイト

Larastan GitHub
Laravelを使ったプロジェクトを始めるならLarastanくらいは導入しようよ

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?