scheb/tombstone

PHP 中使用墓碑进行死代码检测

v1.6.0 2024-03-09 21:51 UTC

README

实现了 PHP 中死代码检测的墓碑概念。

该库为您提供工具箱,以在代码中放置、跟踪和评估墓碑。

Build Status Code Coverage Latest Stable Version Monthly Downloads Total Downloads License

Logo

什么是墓碑?

为了了解基本概念,请观看 David Schnepper 在 2014 年 Velocity Santa Clara 上的 5 分钟演讲。

Tombstone Youtube Video

当您想识别和清理项目中的死代码时,静态代码分析工具是首选武器。但这些工具有一些局限性,特别是在像 PHP 这样的动态语言中。

  • 它们只能告诉您代码是否被引用,而不能确定是否实际使用。
  • 它们无法解析动态或生成的调用路径。

墓碑提供了一种跟踪代码是否被实际调用的方法。 它们是您代码中的可执行标记,您可以将其放置在怀疑有死代码的地方。然后,您在生产环境中收集墓碑调用。过了一段时间,日志将告诉您哪些墓碑是死的,哪些不是(所谓的“吸血鬼”)。

安装

该库由多个组件组成,这些组件需要独立安装和配置。

阅读 如何安装 scheb/tombstone-logger 以在您的代码中放置和记录墓碑。

阅读 如何安装 scheb/tombstone-analyzer,该分析器从 scheb/tombstone-logger 读取日志数据,以生成各种格式的报告。例如 HTML 报告。

Dashboard view Code view

安全性

有关安全策略和已知安全问题,请参阅 SECURITY.md

贡献

想为此项目做出贡献?请参阅 CONTRIBUTING.md

许可

此软件可在 MIT 许可证 下使用。

致谢

该库在很大程度上受到了 Nestoria.com 对墓碑概念的实现 的启发。

感谢 Jordi Boggiano 创建 Monolog,我从那里借用了处理程序/格式化程序的概念。

墓碑图形基于“lemonadeserenade”的授权插图。

支持我

我从 2015 年开始开发这个库。我喜欢听到人们使用它,这给了我继续在开源项目中工作的动力。

如果您想让我知道您觉得它很有用,请考虑在 GitHub 上给它一个星⭐。

如果您喜欢我的工作并想表示感谢,您可以帮我买一杯啤酒🍻️ 通过 PayPal