scheb / tombstone
PHP 中使用墓碑进行死代码检测
Requires
- php: >=7.1.3
- ext-dom: *
- ext-json: *
- nikic/php-parser: ^4.0|^5.0
- phpunit/php-text-template: ^1.2.1|^2.0|^3.0
- psr/log: ^1.0|^2.0|^3.0
- symfony/config: ^3.4|^4.0|^5.0|^6.0
- symfony/console: ^3.4|^4.0|^5.0|^6.0
- symfony/finder: ^4.1|^5.0|^6.0
- symfony/yaml: ^3.4|^4.0|^5.0|^6.0
Requires (Dev)
- escapestudios/symfony2-coding-standard: ^3.9
- phpunit/phpunit: ^7.5|^8.0|^9.0
- squizlabs/php_codesniffer: ^3.5
- symfony/css-selector: ^4.4|^5.0
- symfony/dom-crawler: ^4.4|^5.0
- vimeo/psalm: ^4.30|^5.22
Replaces
- scheb/tombstone-analyzer: ^1.0
- scheb/tombstone-core: ^1.0
- scheb/tombstone-logger: ^1.0
This package is auto-updated.
Last update: 2024-09-09 23:10:29 UTC
README
实现了 PHP 中死代码检测的墓碑概念。
该库为您提供工具箱,以在代码中放置、跟踪和评估墓碑。
什么是墓碑?
为了了解基本概念,请观看 David Schnepper 在 2014 年 Velocity Santa Clara 上的 5 分钟演讲。
当您想识别和清理项目中的死代码时,静态代码分析工具是首选武器。但这些工具有一些局限性,特别是在像 PHP 这样的动态语言中。
- 它们只能告诉您代码是否被引用,而不能确定是否实际使用。
- 它们无法解析动态或生成的调用路径。
墓碑提供了一种跟踪代码是否被实际调用的方法。 它们是您代码中的可执行标记,您可以将其放置在怀疑有死代码的地方。然后,您在生产环境中收集墓碑调用。过了一段时间,日志将告诉您哪些墓碑是死的,哪些不是(所谓的“吸血鬼”)。
安装
该库由多个组件组成,这些组件需要独立安装和配置。
阅读 如何安装 scheb/tombstone-logger
以在您的代码中放置和记录墓碑。
阅读 如何安装 scheb/tombstone-analyzer
,该分析器从 scheb/tombstone-logger
读取日志数据,以生成各种格式的报告。例如 HTML 报告。
安全性
有关安全策略和已知安全问题,请参阅 SECURITY.md。
贡献
想为此项目做出贡献?请参阅 CONTRIBUTING.md。
许可
此软件可在 MIT 许可证 下使用。
致谢
该库在很大程度上受到了 Nestoria.com 对墓碑概念的实现 的启发。
感谢 Jordi Boggiano 创建 Monolog,我从那里借用了处理程序/格式化程序的概念。
墓碑图形基于“lemonadeserenade”的授权插图。
支持我
我从 2015 年开始开发这个库。我喜欢听到人们使用它,这给了我继续在开源项目中工作的动力。
如果您想让我知道您觉得它很有用,请考虑在 GitHub 上给它一个星⭐。
如果您喜欢我的工作并想表示感谢,您可以帮我买一杯啤酒🍻️ 通过 PayPal。