一、GIT 目录中添加钩子文件

vim pre-commit

#! /usr/bin/php
<?php
$siteRoot = dirname(dirname(__DIR__));
require $siteRoot.'/vendor/autoload.php';

$handler = new Phpple\GitWatcher\HookHandler($siteRoot);
$ret = $handler->preCommit();
if (!$ret) {
    echo '提交失败!'.PHP_EOL;
    exit(1);
} else {
    echo '提交成功'.PHP_EOL;
}

二、安装语法检测工具

GIT 地址: https://github.com/phpple/gitwatcher

安装后,规则文件在 vendor/phpple/gitwatcher/assets/rules/phpdefault.xml

可以拷贝出来,重命名放在根目录

cp vendor/phpple/gitwatcher/assets/rules/phpdefault.xml  phpRule.xml

//注释两句代码
<!--<rule ref="Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps">-->
    <!--<message>成员“%1$s”不符合驼峰命名规则</message>-->
<!--</rule>-->
<!--<rule ref="Squiz.NamingConventions.ValidVariableName.NotCamelCaps">-->
    <!--<message>变量“%1$s”不符合驼峰命名规则</message>-->
<!--</rule>-->

由于上面完成后,执行 git commit 的时候会执行

> git commit -m '测试'
-------watcher:git_version start ------
2.28.0
-------watcher:git_version end:true ------
-------watcher:standard start ------
cmd:/www/vendor/squizlabs/php_codesniffer/bin/phpcs --standard="/www/vendor/phpple/gitwatcher/assets/rules/phpdefault.xml" -s --colors app/

但是 规则文件已经被我们修改掉了,所以需要重新定义 gitwatcher 的配置文件

在根目录添加文件 gitwatcher.json 重新覆盖gitwatcher的配置

vim gitwatcher.json
{
  "@extend": "default",
  "standard": {
    "options": {
      "standard": "./phpRule.xml",
      "colors": true
    }
  }
}