Windows系统下使用PHPCS+PHPMD+GIT钩子

这篇具有很好参考价值的文章主要介绍了Windows系统下使用PHPCS+PHPMD+GIT钩子。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

使用PHPCS+GIT钩子保障团队开发中代码风格一致性实践
使用PHPMD提高代码质量与可读性

0.介绍

  • PHP_CodeSniffer php代码嗅探器

    • 包含phpcs(php code standard 代码标准)

    • phpcbf(php code beautify fix 代码美化修复)

    • 是一个代码风格检测工具,着重代码规范

    • 它包含两类脚本,phpcs 和 phpcbf

1.安装

composer global require "squizlabs/php_codesniffer=*"

2.验证是否安装成功并查看帮助

phpcs --help

Windows系统下使用PHPCS+PHPMD+GIT钩子,windows,git,phpmd,phpcs

3.使用

phpcs path/file.php

Windows系统下使用PHPCS+PHPMD+GIT钩子,windows,git,phpmd,phpcs

4.集成到git
4.1 新增钩子文件
在 .git\hooks\目录下执行下面的命令

cp pre-commit.sample  pre-commit

修改其中内容为

#!/bin/bash

#

# check PHP code syntax error and standard with phpcs

# author : star[github.com/star1989]

# date : 2017-02-24

PROJECT=$(git rev-parse --show-toplevel)

cd $PROJECT

SFILES=$(git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\.php)

TMP_DIR=$PROJECT."/tmp"

# Determine if a file list is passed

if [ "$#" -ne 0 ]

then

    exit 0

fi

echo "Checking PHP Lint..."

for FILE in $SFILES

do

#    echo "php -l -d display_errors=0 ${FILE}"

#  echo "git show :$FILE > $TMP_DIR/$FILE"

    php -l -d display_errors=0 $FILE

    if [ $? != 0  ]

    then

        echo "Fix the error before commit."

        exit 1

    fi

    FILES="$FILES $PROJECT/$FILE"

done

if [ "$FILES" != "" ]

then

    echo "Running Code Sniffer..."

    TMP_DIR=/tmp/$(uuidgen)

    mkdir -p $TMP_DIR

    for FILE in $SFILES

    do

        mkdir -p $TMP_DIR/$(dirname $FILE)

        git show :$FILE > $TMP_DIR/$FILE

    done

    phpcs --standard=PSR2 --encoding=utf-8 -n $TMP_DIR

    PHPCS_ERROR=$?

    rm -rf $TMP_DIR

    if [ $PHPCS_ERROR != 0 ]

    then

        echo "Fix the error before commit."

        exit 1

    fi

fi

exit $?

5.在git下使用(git触发检测)

执行git commit 后会自动检测待提交代码的格式

Windows系统下使用PHPCS+PHPMD+GIT钩子,windows,git,phpmd,phpcs

6.自定义phpcs规则

有些情况我们需要忽略一些规则或者添加一些自定义的规则,比如有些类不需要命名空间(迁移类),不希望在检测代码时抛出该类型错误

Windows系统下使用PHPCS+PHPMD+GIT钩子,windows,git,phpmd,phpcs

6.1 添加标准

$ phpcs --config-set installed_paths ruleset.xml

6.2 编辑规则内容

将ruleset.xml放置在项目根目录下,并写入具体规则

<?xml version="1.0"?>

<ruleset name="CustomStandard">

  <!-- 代码标准为PSR2 -->

<rule ref="PSR2">

    <exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/>

</rule>

</ruleset>

6.3 修改pre-commit检测方式

将其中的

phpcs --standard=PSR2 --encoding=utf-8 -n $TMP_DIR

改为

phpcs --standard=ruleset.xml -s --encoding=utf-8 -n $TMP_DIR

这样就可以跳过命名空间的检测了!快去试试吧

7.常用命令

检查单个文件:phpcs /path/to/code
检查目录下的文件:phpcs /path/to/code/
查看已经安装的标准:phpcs -i
设置默认检查标准:phpcs --config-set default_standard /path/to/standard_file
查看配置:phpcs --config-show
指定报告格式:phpcs --report=summary /path/to/code ;可用的报告格式有full, xml, checkstyle, csv, json, emacs, source, summary, diff, svnblame, gitblame, hgblame, notifysend,默认为full
查看帮助:phpcs -h
自动修复:phpcbf /path/to/code

8.phpmd 介绍

  • PHP Mess Detector PHP混乱探测器

    • 是一个代码质量检测工具,着重代码质量

9.安装

composer global require phpmd/phpmd

10.使用

$phpmd path\code text codesize,unusedcode,naming,design

参数说明
# phpmd 源代码路径 报告的格式 规则列表
# 源代码路径 支持
   一个文件 /path/to/file
   一个目录 /path/to/source 
# 报告的格式 支持 
    xml:以XML格式输出;
    text:简单的文本格式;
    html:输出到单个的html;
# 规则列表 支持
    phpmd_ruleset.xml 文件格式
    codesize,unusedcode,naming 单个命令集合
# 附加参数
  --exclude - 忽略的目录,以逗号分隔多个目录。
# 例子
phpmd /path/to/source html ./phpmd_ruleset.xml

11.添加到git钩子

done
    phpcs --standard=ruleset.xml -s --encoding=utf-8 -n $TMP_DIR
    phpmd $TMP_DIR text codesize,unusedcode,naming,design



https://www.jianshu.com/p/d3f8c4b32719

 

Windows系统下使用PHPCS+PHPMD+GIT钩子 - 互联网笔记文章来源地址https://www.toymoban.com/news/detail-828472.html

到了这里,关于Windows系统下使用PHPCS+PHPMD+GIT钩子的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开始在适用于 Linux 的 Windows 子系统上使用 Git

    Git 是最常用的版本控制系统。 使用 Git,可以跟踪对文件所做的更改,以便记录已完成的操作,并能够在需要时还原到文件的早期版本。 Git 还可以简化协作,使多个人员所做的更改全部合并到一个源中。 一个重要的注意事项:启用 WSL 并安装 Linux 发行版时,将安装与计算机

    2024年02月11日
    浏览(46)
  • Windows系统Git安装教程

    前言 Git是目前世界上最先进的分布式版本控制系统,是程序员在管理项目时不可或缺的帮手。今天我将带领大家在Windows操作系统下安装Git这个神奇的工具。 获取Git安装程序 首先在Git官网下载主程序,地址:点我跳转 考虑到有些朋友访问不到官网,我备份了v2.36.0的安装包,

    2024年02月16日
    浏览(71)
  • Windows系统安装Git教程

    今天给大家介绍Windows系统安装Git命令。 git是一个开源的分布式版本控制系统。所谓版本控制系统,是开发者最重要的工具之一,可以有效的解决版本的同步以及不同开发者之家的通信问题,提升协同开发的效率。版本控制系统提供备份功能,开发者所需要的项目文件可以从

    2024年02月02日
    浏览(43)
  • Windows系统git clone Linux内核git仓库的系列问题

            当我们在Windows系统的电脑上试图拉取Linux内核git仓库时,由于Windows和Linux的不兼容会遇到很多问题。踩过好几个坑后,我将针对遇到的问题提出解决方案,并给出完成这项工作的避雷方式。         Linux内核git仓库:         由于以下有些配置仅对新创建子文件

    2024年02月07日
    浏览(54)
  • Windows10系统下Git的安装教程

    到Git官网下载,网站地址:https://git-scm.com  下载到D:software解压 右击我的电脑属性高级系统设置环境变量,找到path,添加两个配置 .   注意是 “点” D:softwareGitbin win+r打开系统命令行,检查Git版本信息 //输入命令 git --version   输入命令 git config --global user.name 用户名 git co

    2024年02月16日
    浏览(65)
  • Git(一)Windows下安装及使用Git Bash

    官网地址: https://www.git-scm.com/ 官方文档: https://www.git-scm.com/docs 官方电子书: https://git-scm.com/book/zh/v2 GitHub: https://github.com/git/git 1.1 什么是Git? Git :是一个版本控制系统, 用于跟踪和管理软件开发项目的文件和代码的变化 。它允许多个开发者在同一个项目上协同工作,并

    2024年02月04日
    浏览(47)
  • windows系统下载和安装git教程(超级简易版)

    1. Windows系统的git安装 网址:https://git-scm.com/download/win 2. Linux/Unix/mac系统的安装 非Windows系统(linux,mac)的git安装:https://git-scm.com/downloads 对应下载即可~ 下载完之后就是安装啦,请见下图,一步步来即可(ㅅ˙ ˘ ˙ ) 然后就可以愉快的使用git了,本教程结束~ 感谢观看w

    2024年02月13日
    浏览(70)
  • Webstorm使用git(windows10)

    因为经常改代码有时候改的自己一脸懵逼直接重来,所以使用git就很便利了. 而网上大多都是苹果的分享… 相关版本: windows10 WebStorm 2022.3.4 git version 2.29.2.windows.2 1.安装git及简单使用 安装链接: Git 详细安装教程(详解 Git 安装过程的每一个步骤)–mukes 简单使用: 史上最详细

    2024年02月08日
    浏览(50)
  • windows钩子、SetWindowsHookEx函数的使用

    Windows钩子技术是一种Windows操作系统提供的机制,允许程序在特定事件发生时拦截并处理操作系统消息、事件或其他程序的输入和输出。钩子可以被用来监视和记录用户的操作、增加或修改某些功能,或者对某些事件作出反应,以此来实现各种自动化和定制化的需求。 钩子技

    2024年02月03日
    浏览(32)
  • git 初始化报错unknown switch `b‘;windows 系统 git版本升级

    我遇到的问题原因是git版本低 升级git 访问:Git - Downloads 1.选择对应的系统 2.选择相应的包点击下载    3.下载后一直下一步(傻瓜式操作) 4.安装成功后 在终端运行     再次初始化仓库 没得问题啦~  

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包