内容简介:我一生的文章都会放在这里,我的博客,我希望每一行代码,每一段文字都能帮助你。嗨,我是CrazyCodes,小时候做错事,长辈有没有训斥过你呢?今天让我们看看PHP的监护者,愤怒的老头- - grumphp
前言
我一生的文章都会放在这里,我的博客,我希望每一行代码,每一段文字都能帮助你。 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: { }
准备
现在目录是酱紫的
- 首先在github建立一个库,用于测试。 https://github.com/CrazyCodes...
- 默认的配置不会检测任何代码。我们为 tasks 加入一个新成员 https://github.com/phpro/grum...
- 重新设置配置文件
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代码质量工具,不是仅仅自己拿来玩的,在开发人员略多的技术团队,可以通过使用它来达到代码规范一致,如果每个人代码都不一样,后果不堪设想。
致谢
感谢你看到这里,希望本篇文章可以帮到你。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 别担心,这的确是bug,你们的视力没毛病.....
- 蔡维德:TCP端到端设计又旧又多毛病
- Spring AOP源码解析——专治你不会看源码的坏毛病!
- 专治不会看源码的毛病--spring源码解析AOP篇(2017版)
- c – 纠正QOpenGLFunctions的用法
- 基于机器翻译输出的语法错误纠正
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript忍者秘籍
John Resig、Bear Bibeault / 徐涛 / 人民邮电出版社 / 2015-10 / 69.00
JavaScript语言非常重要,相关的技术图书也很多,但没有任何一本书对JavaScript语言的重要部分(函数、闭包和原型)进行深入、全面的介绍,也没有任何一本书讲述跨浏览器代码的编写。本书是jQuery库创始人编写的一本深入剖析JavaScript语言的书。 本书共分四个部分,从准入训练、见习训练、忍者训练和火影训练四个层次讲述了逐步成为JavaScript高手的全过程。全书从高级We......一起来看看 《JavaScript忍者秘籍》 这本书的介绍吧!