xactsystems/phpstan-extensions

我们项目中发现有用的PHPStan扩展集合。

安装: 6

依赖者: 0

建议: 0

安全性: 0

星星: 0

关注者: 1

分支: 0

开放性问题: 0

类型:phpstan-extension

v1.0.2 2023-09-03 16:19 UTC

This package is auto-updated.

Last update: 2024-09-03 18:44:46 UTC


README

此仓库包含一些有用的PHPStan扩展,用于检测代码中的错误。当前规则列表如下:

UnusedClassRule

UnusedTraitRule

安装

composer require xactsystems/phpstan-extensions --dev

使用

使用 PHPStan 扩展安装器,一切就绪。

否则,手动启用扩展

# phpstan.neon
include:
    'vendor/xactsystems/phpstan-extensions/config/extension.neon'
    

规则

UnusedClassRule

此规则扫描类声明和使用语句。如果类已声明但在扫描的源文件中未使用,将生成错误。

禁用规则

您可以通过以下方式禁用类扫描:

# phpstan.neon
parameters:
    unused_classes:
        classes: false

排除文件

您可以排除目录和单个文件,使此规则不对其进行扫描

# phpstan.neon
parameters:
    unused_classes:
        excludePaths:
            - 'src/Controller'
            - 'src/MyUnusedClass.php'

排除服务

默认情况下,一些已知服务和框架类被排除。存在许多来自Symfony、Doctrine和PHPUnit的基本类,如果匹配,则忽略正在分析的类。

要禁用此功能,将 excludeFrameworks 属性设置为false

# phpstan.neon
parameters:
    unused_classes:
        excludeFrameworks: false

此列表将随着新框架和类的添加而更改。请查看src/Frameworks中的源代码,以获取排除的基本类列表。

如果您想添加要忽略的自定义基本类列表,请使用 baseClassExcludes 属性

# phpstan.neon
parameters:
    unused_classes:
        baseClassExcludes:
            - 'App\Service\MyAbstractService'
            - 'App\DI\MyDIClass'

baseClassExcludes 中的条目将根据 excludeFrameworks 属性值被排除。

UnusedTraitRule

此规则扫描特质声明和使用语句。如果特质已声明但在扫描的源文件中未使用,将生成错误。

禁用规则

您可以通过以下方式禁用特质扫描:

# phpstan.neon
parameters:
    unused_classes:
        traits: false

排除文件

您可以使用上面显示的excludePaths参数排除目录和单个文件,使此规则不对其进行扫描。