参考链接

使用 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 只不过规则好像稍有区别

安装

  1. composer global require "squizlabs/php_codesniffer=*"

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

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

查看全局 Vendor 目录位置:

  1. composer global config bin-dir --absolute

使用

命令行模式

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

  2. 设置默认代码标准

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

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

    1. phpcs test.php

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

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

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

    1. 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. WPF DevExpress Chart控件 界面绑定数据源,不通过C#代码进行绑定

    <Grid x:Name="myGrid" Loaded="Grid_Loaded" DataContext="{Binding PartOne ...

  2. Struts2测试题

    今天给大家看一套我最近做的一套关于Struts2的题: 1.以下关于jQuery说法错误的选项是( D ). A.“$”为jQuery脚本库的默认全局变量名,即“$” = “jQuery” B.$.a ...

  3. 【奇技淫巧】使用 SSH 转发 Sock5 流量

    标题:使用 SSH 转发 Sock5 流量 日期:2018-06-27 介绍:使用 ssh 来做个 sock5 的代理,穿透到内网中做后渗透 0x01. 基本信息 在 ubuntu(10.211.55 ...

  4. OPEN SQL:插入、删除、修改语法

    1. UPDATE 用于实现对数据据的更新操作,语法如下: UPDATE <dbtab> set f1...fn (where <condition>). UPDATE < ...

  5. 2018.03.27 pandas duplicated 和 replace 使用

    #.duplicated / .replace import numpy as np import pandas as pd s = pd.Series([1,1,1,1,1,2,3,3,3,4,4, ...

  6. golang 千位分隔符

    项目需求将统计出的数字以千位分隔符分隔的形式展示(如将 1234567.89 格式化为 1,234,567.89),而 golang 的标准库中并无这样的函数. 万能的 google 找到解决办法,可 ...

  7. Gradle之Android Gradle Plugin 主要流程分析(二)

    [Android 修炼手册]Gradle 篇 -- Android Gradle Plugin 主要流程分析 预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin ...

  8. 【Linux 应用编程】基础知识

    错误提示 Linux 提供的系统调用API,通常会在失败的时候返回 -1.如果想获取更多更详细的报错信息,需要借助全局变量 errno 和 perror 函数: #include <stdio. ...

  9. spring(二) JDBC

    一.配置 bean.xml , 链接数据库. c3p0数据库连接池 <?xml version="1.0" encoding="UTF-8"?> & ...

  10. 用seaborn对数据可视化

    以下用sns作为seaborn的别名 1.seaborn整体布局设置 sns.set_syle()函数设置图的风格,传入的参数可以是"darkgrid", "whiteg ...