参考链接

使用 PHP-CS-Fixer 的可以看这篇文章: https://learnku.com/laravel/t/547/use-php-cs-fixer-to-automatically-standardize-your-php-code

介绍

PHP_CodeSniffer 是一个代码风格检测工具。它包含两类脚本,phpcsphpcbfGitHub地址

phpcs 脚本对 PHPJavaScriptCSS 文件定义了一系列的代码规范(通常使用官方的代码规范标准,比如 PHPPSR2),能够检测出不符合代码规范的代码并发出警告或报错(可设置报错等级)。

phpcbf 脚本能自动修正代码格式上不符合规范的部分。比如 PSR2 规范中对每一个 PHP 文件的结尾都需要有一行空行,那么运行这个脚本后就能自动在结尾处加上一行空行。

php-cs-fixer

该工具不包含在 PHP_CodeSniffer 中, 是在另一个独立的项目 https://github.com/FriendsOfPHP/PHP-CS-Fixer

php-cs-fixer 修复不规范代码 作用等同于 phpcbf 只不过规则好像稍有区别

安装

composer global require "squizlabs/php_codesniffer=*"

安装后会在全局的 Vendor目录下的 bin 中生成两个软链接:

phpcbf -> ../squizlabs/php_codesniffer/bin/phpcbf
phpcs -> ../squizlabs/php_codesniffer/bin/phpcs

查看全局 Vendor 目录位置:

composer global config bin-dir --absolute

使用

命令行模式

  1. phpcsphpcbf 的目录加入环境变量

  2. 设置默认代码标准

    为了避免每次手动指定标准, 直接设置默认的代码标准为 PSR-2

    phpcs --config-set default_standard PSR2
    phpcbf --config-set default_standard PSR2
  3. 检测代码文件

    phpcs test.php

    此时命令行会提示发现的问题列表, 带 [x] 的表示可以被 phpcbf 修正

    若需要每次执行时指定代码格式标准, 则加上 –standard=<standard>

    phpcs --standard=PSR2 test.php
  4. 修正代码

    phpcbf test.php

    此时会修正问题列表中带 [x] 的问题

PHPStorm

让编辑器使用PSR-2标准

1、打开PhpStorm的设置页(File->Setting),到Editor->Code Style->PHPPHP中选择风格为 PSR1/2

2、到Code Sniffer页,路径是Setting->Languages and Frameworks->PHP->Quality Tools->Code Sniffer,设置phpcs的路径

Composer全局的vendor目录\bin\phpcs.bat

3、到Inspections页,路径Setting->Editor->Inspections,右侧的 PHP,勾选下面的两个 PHP,选择使用 PSR2

现在使用PhpStorm的格式化,将会自动格式化成psr-2的风格

经过上面的操作,PhpStorm代码格式化的规则基本与phpcs的规则基本一致了,但也有一小部分不一致,所以后面还要用到phpcsphpcbf

如果每次都在终端去执行花费时间可不少,为了提高工作效率,可以在PhpStorm集成phpcbf、phpcs检测规范的功能

设置路径:Tools -> External Tools

集成phpcbf

  • Program是你的PHP根目录下的文件,windows是.bat文件

  • Arguments--standard=PSR2 $FileDir$/$FileName$,记得指定代码标准

  • Working directory$ProjectFileDir$,也可以直接填

下面的Open console for tool output是指打印检测的信息到控制台上,phpcs检测的我们要看,phpcbf就不用了,所以不用勾选

怎么使用呢?

工具栏的Tools->External Tools就可以看到我们刚才添加的两个小工具,直接点击就可以用了

点击操作很麻烦, 那就加一个快捷键吧:

Settings -> Keymap -> External Tools -> phpcbf 中进行添加快捷键操作

[原创]PHP代码修正之CodeSniffer的更多相关文章

  1. 【转载/修改】ScrollLayout代码修正,追加模仿viewpager滚动速度

    组件作用为类似ViewPager但直接插视图的横向滚动容器. 修改自:http://blog.csdn.net/yaoyeyzq/article/details/7571940 在该组件基础上修正了滚 ...

  2. 原创:js代码, 让dedecms支持Tag选择, 添加内容更为方便,不用手输Tag

    dedecms在编辑修改内容时,TAG标签需要手动输,中文的Tag, 中间还得用半角字符','分隔,  输入法切来切去很不方便,   于是动手改后台代码, 利用后台的tags_main.php, 让d ...

  3. [原创]-[WEB]代码高亮工具

    代码高亮显示,不是什么新鲜玩艺了,各种各样的插件多了去了.       一开始想在baidu空间里贴代码,用GeSHi生成的高亮HTML复制到编辑器就可以了,不过QQ空间却不行,复制过去的格式全部被清 ...

  4. PhpStorm添加PHP代码规范检查CodeSniffer(phpcs)和PHP代码静态分析工具Mess Detector(phpmd)

    一.安装 添加镜像,加速下载 ./composer.phar  config -g repo.packagist composer https://packagist.phpcomposer.com ...

  5. 对于国嵌上学期《一跃进入C大门》Mini2440的代码修正

    摸索了几天,加了无数的群,病急乱投医式地问了好多个人,终于改对了代码. 下面先贴出给的范例代码 这是C语言代码,是没有错的. 那么出错的地方就在start.S部分 很明显,MPLLCON地址错误,正确 ...

  6. [NLP] The Annotated Transformer 代码修正

    1. RuntimeError: "exp" not implemented for 'torch.LongTensor' class PositionalEncoding(nn. ...

  7. vscode vue 项目保存运行lint进行代码修正

    { "editor.tabSize": 2, "files.associations": { "*.vue": "vue" ...

  8. c#将金额转换为大写,支持小数点,原创经典

    网上搜的都有问题,这个代码属于原创,代码简洁,支持小数点,若没有小数点,则为整 /// <summary> /// 将金额转换成大写 /// </summary> /// &l ...

  9. 【LDA】修正 GibbsLDA++-0.2 中的两个内存问题

    周末这两天在家用LDA做个小实验. 在LDA的众多实现的工具包中.GibbsLDA 是应用最广泛的.包含c++版本号.java版本号等.GibbsLDA++ 是它的C++版本号的实现.眼下最新版本号是 ...

随机推荐

  1. Linux_Samba详解

    目录 目录 Samba Server Parameter Configuration file explain Setup the Samba Server Access the samba shar ...

  2. 《Using Python to Access Web Data》 Week5 Web Services and XML 课堂笔记

    Coursera课程<Using Python to Access Web Data> 密歇根大学 Week5 Web Services and XML 13.1 Data on the ...

  3. linux python 修改环境变量 添加自定义模块路径

    举一个很简单的例子,如果你发现一个包或者模块,明明是有的,但是会发生这样的错误: >>> from algorithm import *Traceback (most recent ...

  4. 练习1:python设计停车入库出库系统

    前言: 最近在某个测试群看到有人抛出了一个面试题.为了提升自己的编程能力,我也尝试的用python去写了一下. 语言:python,数据库:sqlite  .菜鸟来袭,只是基本实现功能,可能没有考虑太 ...

  5. LeetCode算法题-Peak Index in a Mountain Array(Java实现)

    这是悦乐书的第329次更新,第352篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第199题(顺位题号是852).如果以下属性成立,我们将数组A称为山: A.length ...

  6. 【Linux开发】jpeglib使用指南

    您可以到www.ijg.org网站下载libjpeg的源码, IJG JPEG Library就是jpeg压缩库,是以源码的形式提供给软件开发人员的,当然在软件包里也有编译好的库文件,我们这里就只用到 ...

  7. Python实现批量执行华为交换机脚本

    #!/usr/bin/python3 # -*- coding:utf-8 -*- import paramiko import time ssh = paramiko.SSHClient() key ...

  8. 获取客户机MAC地址 根据IP地址 获取机器的MAC地址 / 获取真实Ip地址

    [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref ...

  9. shell script简单笔记

    变量 shell script是一种脚本语言,变量的定义是通过 myName=HYB 这样的形式定义的. 当存在空格时,可以通过双引号或单引号将其变为字符串.双引号不进行转义,单引号将内容进行转义为一 ...

  10. [LeetCode] 113. 路径总和 II

    题目链接 : https://leetcode-cn.com/problems/path-sum-ii/ 题目描述: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径 ...