我们有一个 PHP 5 Web 应用程序,我们目前正在评估PHP CodeSniffer,以确定强制代码标准是否可以提高代码质量。
我们为我们的代码存储库和部署库使用subversion,并且我添加了一个 SVN预提交挂钩以确保所有提交的文件都没有编码标准的气味。该钩子在技术上有效,但会导致太多令人头疼的问题,实际上没有用:
- 如果我们必须修复导致站点中断的紧急错误,我们需要做的最后一件事是由于一些小的空格缩进问题而拒绝提交。
- 我们有很多遗留代码,有时会有数百个 phpcs 错误 - 现在修复这些文件中的所有 phpcs 错误是不切实际的。一个例子是一个包含没有文档注释的函数的文件。另一个例子是,如果类名以小写字母开头,则会引发错误,但修复此问题可能涉及更改 10、20 多个需要提交的文件,然后将被嗅探、递归......
- 我们有一些文件有点大(例如 4000 行代码?),phpcs 需要几分钟来检查它们。将提交延迟这么长时间是不可接受的。
- 我还没有对此进行测试,但我想如果你做一个 svn 分支并提交它,phpcs 会检查所有内容并花费很长时间来检查所有 1000 个文件?
鉴于我们今天无法重构整个代码库 - 有谁知道我如何使用 svn 提交参数来告诉 svn 预提交钩子不运行 phpcs?
或者也许还有另一种方法可以消除所描述的头痛?