o0h / ast-check-diff
基于AST的PHP源代码差异检查器
v2.0.0
2024-09-05 12:10 UTC
Requires
- php: ~8.3.0
- nikic/php-parser: ^v5.1.0
- symfony/console: ^6.3
Requires (Dev)
- friendsofphp/php-cs-fixer: @stable
- phpstan/extension-installer: @stable
- phpstan/phpstan: @stable
- phpstan/phpstan-phpunit: @stable
- phpunit/phpunit: @stable
This package is auto-updated.
Last update: 2024-09-23 09:18:18 UTC
README
概述
PHP AST Check Diff 工具是一个针对增强和重构PHP应用程序而量身定制的强大工具。该工具通过分析PHP代码的抽象语法树(AST)来区分自身,从而实现更深入、更有意义的代码比较。
主要功能
- 基于AST的差异分析:将PHP代码解释为抽象语法树(AST),以检测超出标准代码级别差异的细微差别。
- Git集成:与Git无缝工作,检测PHP文件的更改,专注于AST差异,以实现更全面的分析。
- Markdown输出:生成GitHub Flavored Markdown格式的结果,提供清晰易读的报告。
用户收益
- 自动审查:通过专注于AST差异,该工具自动化了审查过程,使其变得不那么繁琐,更有效率。
- 安全重构:促进安全代码修改。该工具确保代码更改不会更改预期行为,从而支持安全和可靠的重构。
附录(谢谢!)
灵感:本工具的开发受到了以下文章的启发
使用方法
要使用PHP AST Check Diff 工具,请按照以下步骤操作
- 安装
- 运行
composer require --dev o0h/ast-check-diff
安装此工具。
- 运行
- 执行
- 执行
vendor/bin/ast-check-diff check
进行比较并将Markdown文档输出到标准输出。 - 可以通过CLI传递
--head
和--base
选项来指定比较的源和目标。可以使用分支名称、标签或提交哈希来指定。
- 执行
- 与GitHub Actions集成
- 强烈建议将此工具与GitHub Actions集成,以实现与pull请求的深度协作。
- 工作流程示例代码: GitHub Workflow
- 操作示例: GitHub Pull Request Example
- 强烈建议将此工具与GitHub Actions集成,以实现与pull请求的深度协作。
示例
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)平台等隔离环境中使用此工具,而不是直接在项目中要求它。