stevegrunwell / wp-enforcer
Git hooks 用于鼓励编写良好的 WordPress 代码。
Requires
This package is auto-updated.
Last update: 2024-09-07 04:28:28 UTC
README
在为像 WordPress 这样的大型平台编写代码时 - 尤其是在团队环境中 - 一套一致的编码标准至关重要。多个开发者使用不同的空格和制表符、不一致的格式化或不同的编码风格提交代码可能会导致令人头疼的合并冲突。
有多个出色的工具可用于检查已建立的编码标准(例如 PHP_CodeSniffer),但在项目中设置它们可能会很痛苦。WP Enforcer 设计用来使这种设置变得容易。
它是如何工作的?
WP Enforcer 使用 Git Hooks 在开发者尝试提交代码时自动运行 PHP_CodeSniffer;如果代码不符合要求,提交将被拒绝,开发者将收到一条解释需要修复什么的消息。
注意: 如果您的项目已经存在混乱的标准,您可能希望在清理代码库后不强制使用 WP Enforcer,否则提交可能会非常痛苦!有关简单解决方案,请参阅 将 WP Enforcer 添加到现有项目。
安装
安装 WP Enforcer 最简单的方法是通过 Composer
$ composer require --dev stevegrunwell/wp-enforcer
这将把 WP Enforcer 添加到您的 composer.json
文件中,并安装 WP Enforcer 包。
接下来,您需要运行 WP Enforcer 安装脚本,将 Git hooks 复制到您的本地仓库
$ ./vendor/bin/wp-enforcer
如果您想强制所有项目开发者使用 WP Enforcer,您可以将以下脚本添加到您的 composer.json
文件中,以便在 composer install
和 composer update
时自动设置 Git hooks(有关更多信息,请参阅 Composer 脚本)
{ "scripts": { "post-install-cmd": [ "wp-enforcer" ], "post-update-cmd": [ "wp-enforcer" ] } }
为 WordPress.com VIP 编写
WP Enforcer 内置了对 WordPress.com VIP 编码标准 的支持,只需在运行 wp-enforcer
命令时添加 --vip
(包括在安装后和更新后命令中)即可。
如果您需要将现有项目切换到 WordPress.com VIP 编码标准,您可以将以下内容添加到项目中的 phpcs.xml 文件中(如果设置了 "WordPress-Extra",则替换它)
<rule ref="WordPress-VIP" />
使用自定义规则集
如果您想使用自定义的 XML 配置文件与 PHP_CodeSniffer 一起使用,请在运行 wp-enforcer
命令时添加 --ruleset=[FILE]
。
配置
PHP_CodeSniffer 允许您通过在项目根目录中创建一个 phpcs.xml 文件来定义自定义的默认规则集。如果您的项目中尚未存在,WP Enforcer 将自动创建一个 phpcs.xml 文件,但您可以编辑它以排除某些文件/目录、忽略特定规则或加载额外的规则集。
有关配置选项的完整列表,请参阅 PHP_CodeSniffer 规则集.xml 标准。
将 WP Enforcer 添加到现有项目
将编码标准添加到现有项目可能是一个痛苦的过程。WP Enforcer只会对更改的文件运行Git钩子,但如果当前的代码库一团糟,即使是进行标准清理提交也变得非常麻烦。
如果您正在将WP Enforcer添加到现有项目中,建议您按照上述安装说明在新的清理分支中操作,然后删除预提交钩子。
$ rm .git/hooks/pre-commit
提醒:请谨慎使用
rm
命令;在执行之前,请仔细检查传递给它的所有内容,因为我们不希望看到您丢失宝贵的仓库信息(或者更糟:您的操作系统)。
这会让您拥有PHP_CodeSniffer的副本、一个phpcs.xml文件和WordPress编码标准,但会移除“不要提交格式不正确的代码”的限制。在清理分支中,处理代码库并清理编码标准,根据需要手动运行PHP_CodeSniffer。
$ ./vendor/bin/phpcs
您还可以运行PHP Code Beautifier和Fixer,该工具可以使用PHP Code Beautifier和Fixer(phpcbf)命令自动修复许多常见的缩进和格式问题。
$ ./vendor/bin/phpcbf
一旦CodeSniffer检查通过,重新运行WP Enforcer安装脚本以恢复Git钩子,强制所有未来的提交都是干净的。
$ ./vendor/bin/wp-enforcer
最后,将清理分支合并到master,使您的项目编码标准合规性达到高速。
绕过WP Enforcer
如果需要绕过WP Enforcer的sniffs进行特定提交(例如,您正在提交具有较旧、不合规代码的小块文件),可以通过使用git commit --no-verify
来实现。
建议只有在修改尚未清理的旧文件时才绕过WP Enforcer。有关将WP Enforcer集成到旧项目的更多信息,请参阅添加到现有项目。