摘要:默認的配置不會檢測任何代碼。參數列表質量檢測包其他有人問,你為什么要這么折磨自己呢其實像類型代碼質量工具,不是僅僅自己拿來玩的,在開發人員略多的技術團隊,可以通過使用它來達到代碼規范一致,如果每個人代碼都不一樣,后果不堪設想。
前言
我一生的文章都會放在這里,我的博客,我希望每一行代碼,每一段文字都能幫助你。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代碼質量工具,不是僅僅自己拿來玩的,在開發人員略多的技術團隊,可以通過使用它來達到代碼規范一致,如果每個人代碼都不一樣,后果不堪設想。
致謝感謝你看到這里,希望本篇文章可以幫到你。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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 支持英文的單詞糾錯 可以迅速判斷當前單詞是否拼寫錯誤 可以返回最佳匹配結果 可以返回糾正匹配列表,支持指定返回列表的大小 后續將會添加的新功能 英文單詞支持自行定義 中文單詞的拼寫是否正確功能添加 快速開始 ...
閱讀 3559·2021-11-22 15:11
閱讀 4634·2021-11-18 13:15
閱讀 2702·2019-08-29 14:08
閱讀 3576·2019-08-26 13:49
閱讀 3091·2019-08-26 12:17
閱讀 3288·2019-08-26 11:54
閱讀 3111·2019-08-26 10:58
閱讀 2031·2019-08-26 10:21