cdwv / 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-18 07:41:10 UTC
README
PHP静态分析钩子配置了一个GIT预提交钩子,用于运行一些静态分析工具,并在任何工具检测到代码问题时阻止提交。当前钩子版本中包含的静态分析工具
- 内部PHP代码检查器(
php -l
) - PHP_CodeSniffer
- PHP Mess Detector
此外,该工具将钩子符号链接到Composer的bin-dir
,以便其代码可以在存储库中进行版本控制。
致谢
该工具是此存档的扩展版本,由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
中的钩子(目前只使用预提交钩子)。
脚本不需要任何额外的操作 - 它会在您运行git commit
命令时运行。
忽略错误模式
有时即使代码中存在一些问题,也可能需要提交代码。您可以通过在运行git commit
命令之前设置环境变量STATIC_ANALYSIS_IGNORE_ERRORS
来实现这一点。
请注意,您应该在提交后记住取消设置变量。否则,如果您的代码中存在错误,您未来的所有提交都不会被阻止。以下命令在提交之前设置变量,在提交之后取消设置,您可以根据自己的需要使用它或调整它
export STATIC_ANALYSIS_IGNORE_ERRORS="t" && git commit -a; unset STATIC_ANALYSIS_IGNORE_ERRORS
免责声明
当前版本的脚本仅是一个概念验证,应谨慎使用。使用风险自负。