php 纠正时间,使用GrumPHP来纠正代码“毛病”

bVbtfeF?w=1796&h=724

前言

我一生的文章都会放在这里,我的博客,我希望每一行代码,每一段文字都能帮助你。https://github.com/CrazyCodes...

嗨,我是CrazyCodes,小时候做错事,长辈有没有训斥过你呢?今天让我们看看PHP的监护者,愤怒的老头- - grumphp

GrumPHP

GrumPHP 是通过挂在git hook上的一款PHP代码检测工具,他可以通过编码人员提交git时进行检查,检查通过则提交成功,检查失败则终止提交。

安装

通过composer直接安装即可,不推荐其他安装方式

composer require --dev phpro/grumphp

这类工具一定要放在dev内,在生产环境使用毫无意义,所以带参 --dev。

配置

安装结束后会自动在项目根目录建立grumphp.yml,官方给出的demo如下

# grumphp.yml

parameters:

bin_dir: "./vendor/bin"

git_dir: "."

hooks_dir: ~

hooks_preset: local

git_hook_variables:

VAGRANT_HOST_DIR: .

VAGRANT_PROJECT_DIR: /var/www

EXEC_GRUMPHP_COMMAND: exec

stop_on_failure: false

ignore_unstaged_changes: false

hide_circumvention_tip: false

process_async_limit: 10

process_async_wait: 1000

process_timeout: 60

ascii:

failed: grumphp-grumpy.txt

succeeded: grumphp-happy.txt

tasks:

ant: ~

atoum: ~

behat: ~

brunch: ~

clover_coverage: ~

codeception: ~

composer: ~

composer_normalize: ~

composer_require_checker: ~

composer_script: ~

deptrac: ~

doctrine_orm: ~

file_size: ~

gherkin: ~

git_blacklist: ~

git_branch_name: ~

git_commit_message: ~

grunt: ~

gulp: ~

infection: ~

jsonlint: ~

kahlan: ~

make: ~

npm_script: ~

paratest: ~

phan: ~

phing: ~

php7cc: ~

phpcpd: ~

phpcs: ~

phpcsfixer: ~

phpcsfixer2: ~

phplint: ~

phpmd: ~

phpmnd: ~

phpparser: ~

phpspec: ~

phpstan: ~

phpunit: ~

phpunitbridge: ~

phpversion: ~

progpilot: ~

psalm: ~

robo: ~

securitychecker: ~

shell: ~

twigcs: ~

xmllint: ~

yamllint: ~

testsuites: []

extensions: []

参数说明

参数名

默认值

注释

bin_dir

./vendor/bin

方便找到phpcs这类检测工具的外部命令,一般不需要修改

git_dir

.

默认git目录,正常都在根目录的吧

hooks_dir

null

设置钩子文件夹,默认会直接找 resources/hooks

tasks

用于加载代码检测的库

实战

是不是太多了,忽略上面,咱一步一步看。下面是安装完成后自动生成的配置文件

parameters:

git_dir: .

bin_dir: vendor/bin

tasks: { }

准备

现在目录是酱紫的

bVbtfiQ?w=734&h=224

骚操作

parameters:

git_dir: .

bin_dir: vendor/bin

tasks: {

phpcs : ~

}

新建一个文件easy.php,代码如下,多一个分号,老头是一定不会放过你的。

echo '召唤愤怒的老头';;

老头是酱紫说的,额,其实他是一个红色的

GrumPHP detected a pre-commit command.

GrumPHP is sniffing your code!

Running task 1/1: Phpcs... ✘

▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

▄▄▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌

▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▄

▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌

▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌

▄███▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌

█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌

▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌

▀█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌

▀▀▓▓▓▓▓▓▓▓▓▓▓▓█▀▀▀▀▀▀▀▀▀▀▀▀▀▀████████████▄

▄███████ ██████████

███████▀ ▀▀▀▀▀▄ ▄▀▀▀▀▀ █████ ▀

▐████ ▐██ ▐██ ████▌

████▌ ███

▌██▌ ▄▄ ▄▄ ▐███

███ ▄▄▄▄▄▄▄▄▄▄▄▄ ▐███

██▄ ▐███████████████████████████

█▀███████████▀ ▀▀███████████

██████████▄███████▄███████████

▐█████████████████████████████

█████████████████████████████

██ █████████████████████▐██▀

▀ ▐███████████████████▌ ▐▀

████▀████████▀▐███

▀█▌ ▐█████ ██▌

██▀ ▐▀

██████████████████████████████████

█░░░░░░▀█▀░░░░░░▀█░░░░░░▀█▀░░░░░▀█

█░░▐█▌░░█░░░██░░░█░░██░░░█░░░██░░█

█░░▐█▌░░█░░░██░░░█░░██░░░█░░░██░░█

█░░▐█▌░░█░░░██░░░█░░░░░░▄█░░▄▄▄▄▄█

█░░▐█▌░░█░░░██░░░█░░░░████░░░░░░░█

█░░░█░░░█▄░░░░░░▄█░░░░████▄░░░░░▄█

██████████████████████████████████

FILE: /Users/crazy/http/app/yield_test/easy.php

----------------------------------------------------------------------

FOUND 1 ERROR AFFECTING 1 LINE

----------------------------------------------------------------------

2 | ERROR | Missing file doc comment

----------------------------------------------------------------------

Time: 37ms; Memory: 4MB

不仅仅有愤怒的老头,GrumPHP还提示了一些其他内容。

FILE 检测文件路径

FOUND 1 ERROR AFFECTING 1 LINE 有几个错误,在哪一行

2 | ERROR | Missing file doc comment 错误的问题是什么

这次检测是说我没写注释。是不是很有意思?GrumPHP不仅仅就这点能力哦,想深入请自行挖掘。

其他

有人问,你为什么要这么折磨自己呢?其实像类型GrumPHP代码质量工具,不是仅仅自己拿来玩的,在开发人员略多的技术团队,可以通过使用它来达到代码规范一致,如果每个人代码都不一样,后果不堪设想。

bVbtfBp?w=1532&h=558

致谢

感谢你看到这里,希望本篇文章可以帮到你。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值