tomasvotruba / unused-public
检测代码中未使用的公共属性、常量和方法
0.4.0
2024-09-16 07:27 UTC
Requires
- php: ^7.2 || ^8.0
- phpstan/phpstan: ^1.10.19
- webmozart/assert: ^1.11
- dev-main
- 0.4.0
- 0.3.11
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2.72
- 0.3.2
- 0.3.1.72
- 0.3.1
- 0.3.0.72
- 0.3.0
- 0.2.0.72
- 0.2.0
- 0.1.14.72
- 0.1.14
- 0.1.13.72
- 0.1.13
- 0.1.12.72
- 0.1.12
- 0.1.11.72
- 0.1.11
- 0.1.10.72
- 0.1.10
- 0.1.9.72
- 0.1.9
- 0.1.8.72
- 0.1.8
- 0.1.7.72
- 0.1.7
- 0.1.6.72
- 0.1.6
- 0.1.5.72
- 0.1.5
- 0.1.4.72
- 0.1.4
- 0.1.3.72
- 0.1.3
- 0.1.2.72
- 0.1.2
- 0.1.1.72
- 0.1.1
- 0.1.0.72
- 0.1.0
- 0.0.35.72
- 0.0.35
- 0.0.34.72
- 0.0.34
- 0.0.33.72
- 0.0.33
- 0.0.32.72
- 0.0.32
- 0.0.31.72
- 0.0.31
- 0.0.30.72
- 0.0.30
- 0.0.29.72
- 0.0.29
- 0.0.28.72
- 0.0.28
- 0.0.27.72
- 0.0.27
- 0.0.26.72
- 0.0.26
- 0.0.25.72
- 0.0.25
- 0.0.24.72
- 0.0.24
- 0.0.23.72
- 0.0.23
- 0.0.22
- 0.0.21.72
- 0.0.21
- 0.0.20.72
- 0.0.20
- 0.0.19.72
- 0.0.19
- 0.0.18.72
- 0.0.18
- 0.0.17.72
- 0.0.17
- 0.0.16.72
- 0.0.16
- 0.0.15.72
- 0.0.15
- 0.0.14.72
- 0.0.14
- 0.0.13.72
- 0.0.13
- 0.0.12.72
- 0.0.12
- 0.0.11.72
- 0.0.11
- 0.0.10.72
- 0.0.10
- 0.0.9.72
- 0.0.9
- 0.0.8.72
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-tv-fix-blade-regex
- dev-tv-paths-fix
- dev-tv-open-php
- dev-tv-skip-silent-methods
This package is auto-updated.
Last update: 2024-09-16 20:29:06 UTC
README
查找未使用的私有类元素很容易,因为它们在类内部没有被使用。那么公共方法/属性/常量呢?
final class Book { public function getTitle(): string { // ... } - public function getSubtitle(): string - { - // ... - } }
我们如何检测未使用的公共元素呢?
- 查找公共方法
- 在代码和模板中查找所有公共方法调用
- 如果未找到公共方法,它可能未被使用
这正是这个包所做的事情。
这项技术对于私有项目和检测意外使用的 public
修饰符非常有用,这些修饰符应该更改为 private
以供本地调用。
安装
composer require tomasvotruba/unused-public --dev
该包适用于 PHP 7.2+ 版本。
用法
使用 PHPStan 扩展安装器,一切就绪。
通过简单的配置启用每个项目
# phpstan.neon parameters: unused_public: methods: true properties: true constants: true
你有数百个报告的公共方法吗?你没有时间检查它们所有,但想逐步处理它们吗?
设置最大允许 % 配置
# phpstan.neon parameters: unused_public: methods: 2.5
这意味着最多 2.5% 的所有公共方法被视为未使用是允许的
- 如果是 5%,你会收到警告。
- 如果是 1%,它将被跳过,作为容许。
你想检查不应该删除但应改为 private
/protected
的本地调用方法吗?
# phpstan.neon parameters: unused_public: local_methods: true
排除模板中调用的方法
一些方法仅在 TWIG 或 Blade 模板中使用,可能会被错误地报告为未使用。
{{ book.getTitle() }}
我们如何排除它们?在配置中添加您的 TWIG 或 Blade 模板目录以排除方法名称
# phpstan.neon parameters: unused_public: template_paths: - templates
已知限制
在某些情况下,规则报告了误报
- 当仅用于模板时(除 Twig 路径外),无法检测它们
跳过仅公共方法
开源供应商设计公共 API 以供项目使用。如果元素被报告为未使用,但实际上是为公共使用而设计的吗?
使用 @api
注解标记类或元素以跳过它
final class Book { /** * @api */ public function getName() { return $this->name; } }