o0h/ast-check-diff

基于AST的PHP源代码差异检查器

v2.0.0 2024-09-05 12:10 UTC

README

phpunit codecov

概述

PHP AST Check Diff 工具是一个针对增强和重构PHP应用程序而量身定制的强大工具。该工具通过分析PHP代码的抽象语法树(AST)来区分自身,从而实现更深入、更有意义的代码比较。

主要功能

  • 基于AST的差异分析:将PHP代码解释为抽象语法树(AST),以检测超出标准代码级别差异的细微差别。
  • Git集成:与Git无缝工作,检测PHP文件的更改,专注于AST差异,以实现更全面的分析。
  • Markdown输出:生成GitHub Flavored Markdown格式的结果,提供清晰易读的报告。

用户收益

  • 自动审查:通过专注于AST差异,该工具自动化了审查过程,使其变得不那么繁琐,更有效率。
  • 安全重构:促进安全代码修改。该工具确保代码更改不会更改预期行为,从而支持安全和可靠的重构。

附录(谢谢!)

灵感:本工具的开发受到了以下文章的启发

使用方法

要使用PHP AST Check Diff 工具,请按照以下步骤操作

  1. 安装
    • 运行 composer require --dev o0h/ast-check-diff 安装此工具。
  2. 执行
    • 执行 vendor/bin/ast-check-diff check 进行比较并将Markdown文档输出到标准输出。
    • 可以通过CLI传递 --head--base 选项来指定比较的源和目标。可以使用分支名称、标签或提交哈希来指定。
  3. 与GitHub Actions集成

示例

  • vendor/bin/ast-check-diff check ast-diff-check:如果省略了--head选项,则隐式指定HEAD,如果省略了--base选项,则隐式指定main分支。
  • vendor/bin/ast-check-diff check ast-diff-check --base HEAD@{3} --head HEAD~:这些比较是通过指定指针来进行的。
  • vendor/bin/ast-check-diff check ast-diff-check --base cd2f816 --head 1a89b0c:这些比较是通过指定特定提交来进行的。

注意

  • 此工具旨在与最新PHP环境(8.3)一起使用。
  • 包含composer.lock:项目包含composer.lock文件。

由于上述原因,建议在容器或持续集成(CI)平台等隔离环境中使用此工具,而不是直接在项目中要求它。