摘要:默认的配置不会检测任何代码。参数列表质量检测包其他有人问,你为什么要这么折磨自己呢其实像类型代码质量工具,不是仅仅自己拿来玩的,在开发人员略多的技术团队,可以通过使用它来达到代码规范一致,如果每个人代码都不一样,后果不堪设想。
前言
我一生的文章都会放在这里,我的博客,我希望每一行代码,每一段文字都能帮助你。https://github.com/CrazyCodes...
嗨,我是CrazyCodes,小时候做错事,长辈有没有训斥过你呢?今天让我们看看PHP的监护者,愤怒的老头- - grumphp
GrumPHPGrumPHP 是通过挂在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不仅仅就这点能力哦,想深入请自行挖掘。
参数列表 https://github.com/phpro/grum...
质量检测包 https://github.com/phpro/grum...
其他有人问,你为什么要这么折磨自己呢?其实像类型GrumPHP代码质量工具,不是仅仅自己拿来玩的,在开发人员略多的技术团队,可以通过使用它来达到代码规范一致,如果每个人代码都不一样,后果不堪设想。
致谢感谢你看到这里,希望本篇文章可以帮到你。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/31615.html
摘要:以前其实写过一篇和的对比但是后来发现里面有不少谬误所以一直惦记着纠正一下之前的错误尤其关于中间件部分的对比这里的就拿更加简单的代替的执行流程通常我们都说的中间件模型是线性的也就是一个一个往下执行的如下图这么说当然是没错的但是当我们执行下面代 以前其实写过一篇express和koa的对比, 但是后来发现里面有不少谬误. 所以一直惦记着纠正一下之前的错误, 尤其关于中间件部分的对比. 这里...
摘要:前言记录自己从基础学习实战,初入发表文章,望各位大佬口下留情不对之处还请大佬指点一下。在加载完后,你自己默认的浏览器自动打开配置界面新建项目。 1. 前言 记录自己从基础学习vue实战,初入发表文章,望各位大佬口下留情!不对之处还请大佬指点一下。 2. 新建,配置项目 1. 新建Vue-cli3.0脚手架的项目 在这里普及一下,什么是Vue-cli? Vue是一套用于构建用户界面的渐...
摘要:前言记录自己从基础学习实战,初入发表文章,望各位大佬口下留情不对之处还请大佬指点一下。在加载完后,你自己默认的浏览器自动打开配置界面新建项目。 1. 前言 记录自己从基础学习vue实战,初入发表文章,望各位大佬口下留情!不对之处还请大佬指点一下。 2. 新建,配置项目 1. 新建Vue-cli3.0脚手架的项目 在这里普及一下,什么是Vue-cli? Vue是一套用于构建用户界面的渐...
Word Checker word checker 本项目用于单词拼写检查。 Github 地址 项目简介 本项目用于单词拼写检查。 特性说明 支持 i18n 错误提示支持 i18N 支持英文的单词纠错 可以迅速判断当前单词是否拼写错误 可以返回最佳匹配结果 可以返回纠正匹配列表,支持指定返回列表的大小 后续将会添加的新功能 英文单词支持自行定义 中文单词的拼写是否正确功能添加 快速开始 ...
阅读 3560·2021-11-22 15:11
阅读 4634·2021-11-18 13:15
阅读 2704·2019-08-29 14:08
阅读 3578·2019-08-26 13:49
阅读 3093·2019-08-26 12:17
阅读 3290·2019-08-26 11:54
阅读 3113·2019-08-26 10:58
阅读 2031·2019-08-26 10:21