0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PHP静的解析ツール PHPStan(Larastan) 個人的メモ

Posted at

PHPStan (Larastan)

レベルに応じたソースコードの解析を行い、不具合の原因になりかねない箇所を指摘してくれる素晴らしいツール。

PHPStan公式サイト

使い方

# ./vendor/bin/phpstan analyse -l [level] [検証するパス]

# example
./vendor/bin/phpstan analyse -l 4 app/Http/Controllers/TopController.php

level

下位レベルのテストを全て含む(※レベル3はレベル0~2もチェックするよ)

レベル チェック内容
0 基本的なチェック、未知のクラス、未知の関数、$thisに呼び出された未知のメソッド、これらのメソッドや関数に渡された引数の数が間違っている、常に未定義の変数。
1 未定義の変数、未知のマジックメソッド、__call や __get を持つクラスのプロパティがある可能性があります
2 未知のメソッドを ($this だけでなく) すべての式でチェックし、PHPDocs の検証を行います
3 戻り値の型、プロパティに割り当てられた型
4 基本的なデッドコードチェック - 常に偽のinstanceofやその他の型チェック、デッドelseブランチ、リターン後の到達不可能なコードなど
5 メソッドや関数に渡される引数の種類を確認する
6 タイプヒントの欠落を報告する
7 部分的に誤った組合タイプを報告する - 組合タイプ内のいくつかのタイプにのみ存在するメソッドを呼び出すと、レベル7はそれを報告し始める; その他の不正確な状況を報告する可能性がある
8 null可能な型に対するメソッド呼び出しとプロパティアクセスを報告します
9 or max 混合型については,厳密には別の混合型に渡すことだけが許されます

所見

チーム開発の場合は、どのレベルまで許容出来るかをチーム内で話し合った方がよさそう。
全てのファイルをレベル9で通そうとしたら膨大な時間が掛かることは間違いない。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?