2.3. 规则级别

未匹配的标注

规则级别

如果你想使用 PHPStan 但你的代码库没有跟上强类型编码和 PHPStan 严格检查的速度,你可以通过传递 -l|--levelanalyse 命令从 10 个级别(0 是最宽松的,9 是最严格的)中进行选择。

vendor/bin/phpstan analyse -l 6 src tests

默认级别是 0。指定配置文件后,你还必须指定要运行的级别。

这个特性使你可以逐步采用 PHPStan。 你可以用一个较宽松的级别开始 PHPStan,然后当你喜欢它时使用更严格的级别。

基线

如果不想先修复所有的报错,但又想运行更严格的级别,可以查看一个叫 基线 的特性。

你也可以使用 --level max 运行最严格的级别。 这将确保您在升级到新版本的 PHPStan 时始终使用最高级别。 ^levelmax

以下是每个级别检查内容的简要概述。级别是累计的。例如,运行级别 5 也会为你完成 0-4 的所有检查。

  1. 基本检查,未知类、未知函数、在 $this 调用的未知方法、传递给这些方法(method)和函数(function)的参数数量错误和始终未定义的变量。
  2. 可能未定义的变量、 在用了 __call__get 的类的未知魔术方法和属性。
  3. 所有表达式的未知方法(不仅仅在 $this),验证 PHPDocs 。
  4. 返回类型,分配给属性(property)的类型。
  5. 基本的死代码(dead code)检查 —— 总是 false 的 instanceof 检查和其他类型检查,死的 else 分支,在 return 之后不可访问的代码等等。
  6. 检查传递给方法和函数的参数类型。
  7. 报告缺失的类型提示。
  8. 报告部分错误的联合类型 —— 如果你调用的方法只存在于联合类型中的某些类型上,级别 7 会开始报告;其他可能错的场景。
  9. 报告调用方法和访问可能为 null 的属性。
  10. 严格控制 mixed 类型 —— 您可以对其进行的唯一操作是将其传递给另一个 mixed

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~