wozinski / php-static-analysis-hook
一个启用
dev-master
2015-03-11 09:52 UTC
Requires
- php: >=5.3.0
- phpmd/phpmd: *
- squizlabs/php_codesniffer: 2.0.*@dev
This package is not auto-updated.
Last update: 2024-09-24 03:09:41 UTC
README
PHP Static Analysis Hook 配置一个 GIT 预提交钩子来运行一些静态分析工具,如果这些工具中的任何一个检测到代码问题,则会阻止提交。钩子当前版本包含的静态分析工具
- 内部 PHP 检查器 (
php -l
) - PHP_CodeSniffer
- PHP Mess Detector
此外,该工具将钩子符号链接到 Composer 的 bin-dir
,以便其代码可以在仓库中进行版本控制。
致谢
该工具是 此 gist 的扩展版本,作者为 cjsaylor。Git 钩子版本控制灵感来源于此 StackOverflow 答案:http://stackoverflow.com/a/3464399
要求
- 在项目目录中初始化的 git 仓库
- 该仓库需要至少有一个提交,以便脚本正确运行。是的,这是一个错误 - 我还没有时间解决这个问题(但请继续修复它)。
用法
- 将此包添加到 composer.json 文件的 require-dev 部分,并运行
composer update
。示例
{
"require-dev": {
"cdwv/php-static-analysis-hook": "dev-master"
}
}
- 在您的 CLI 中运行
bin/symlink-git-hooks-to-hub
命令。它将自动备份您现有的 git 钩子,并将所有钩子重定向到 git-hook-hub,后者将钩子的调用重定向到 Composer 的bin-dir
中的钩子(目前只使用 pre-commit 钩子)。
该脚本不需要任何其他操作 - 它会在您运行 git commit
命令时运行。
忽略错误模式
有时即使在代码中存在一些问题时,也可能需要提交代码。您可以在运行 git commit
命令之前设置环境变量 STATIC_ANALYSIS_IGNORE_ERRORS
来实现这一点。
请注意,您应该在提交后记住取消设置该变量。否则,如果您的代码中存在错误,所有未来的提交将不会被阻止。以下命令在提交之前设置变量,并在之后取消设置,您可以自由使用它或根据您的需求进行调整
export STATIC_ANALYSIS_IGNORE_ERRORS="t" && git commit -a; unset STATIC_ANALYSIS_IGNORE_ERRORS
免责声明
当前版本的脚本仅是一个概念证明,应谨慎使用。使用风险自负。