xactsystems / phpstan-extensions
我们项目中发现有用的PHPStan扩展集合。
v1.0.2
2023-09-03 16:19 UTC
Requires
- php: ^7.4 || ^8.0
- webmozart/assert: ^1.11
Requires (Dev)
- phpstan/phpstan: ^1.10.30
- phpunit/phpunit: ^9.6
- xactsystems/phpstan-dev: ^1.0
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参数排除目录和单个文件,使此规则不对其进行扫描。