tomasvotruba/phpstan-bodyscan

获取每个PHPStan级别的错误计数

0.2.5 2024-06-01 04:44 UTC

This package is auto-updated.

Last update: 2024-09-08 14:55:49 UTC


README

Downloads total

  • 你想快速查看新项目的代码质量吗?
  • 你想知道,对于你的项目来说,最好的PHPStan级别是什么吗?
  • 你想知道,你将面临多少错误,以了解达到这些级别有多难吗?

获取每个PHPStan级别的错误计数!


它是如何工作的?

首先,我们在项目根目录中寻找phpstan.neon文件。

  • 如果找到了,我们就重用它。
  • 如果没有找到,我们会查找默认的源代码路径,如/src/app/tests等。

然后,我们对从0到8级别的每个级别运行PHPStan。我们统计错误并在表中显示它们。


安装

composer require tomasvotruba/phpstan-bodyscan --dev

用法

在你的项目中运行工具。由于它将为每个级别运行完整的PHPStan分析,所以这需要一些时间。

vendor/bin/phpstan-bodyscan

获取每个级别的错误计数

+-------+-------------+-----------+
| Level | Error count | Increment |
+-------+-------------+-----------+
|     0 |           0 |         - |
|     1 |          35 |      + 35 |
|     2 |          59 |      + 24 |
|     3 |          59 |         - |
|     4 |         120 |      + 61 |
|     5 |         120 |         - |
|     6 |         253 |     + 133 |
|     7 |         350 |      + 97 |
|     8 |         359 |       + 9 |
+-------+-------------+-----------;

你想运行包括所有被忽略消息的级别吗?

vendor/bin/phpstan-bodyscan --no-ignore

你想运行不包含扩展的级别吗?

vendor/bin/phpstan-bodyscan --bare

你需要JSON格式吗?

我们已经为你准备好了

vendor/bin/phpstan-bodyscan --json

[
    {
        "level": 0,
        "error_count": 0,
        "increment_count": 0
    },
    {
        "level": 1,
        "error_count": 5,
        "increment_count": 5
    },
    {
        "level": 2,
        "error_count": 25,
        "increment_count": 20
    }
]

限制级别计数

你只对几个级别感兴趣吗?你可以通过选项限制范围

vendor/bin/phpstan-bodyscan run --min-level 0 --max-level 3

度量类型覆盖率

实验性!

你想要了解项目参数、返回和属性类型声明覆盖情况吗?

运行type-coverage命令↓

vendor/bin/phpstan-bodyscan type-coverage --json

[
    {
        "category": "param type",
        "relative_covered": 100,
        "total_count": 54
    },
    {
        "category": "property type",
        "relative_covered": 100,
        "total_count": 1
    },
    {
        "category": "return type",
        "relative_covered": 100,
        "total_count": 33
    },
    {
        "category": "strict declares",
        "relative_covered": 100,
        "total_count": 18
    }
]

基于type-coverage包


加载环境文件

一些项目需要加载.env文件来运行PHPStan。你可以这样做

vendor/bin/phpstan-bodyscan run --env-file some-parameters.env

调试

在你不了解的新项目中运行PHPStan可能会崩溃。为了保存已完成级别的数据,我们将它们转储到bodyscan-log.txt文件中。

如果运行因任何原因崩溃,PHPStan的错误输出也将转储到同一文件。


快乐的编码!