[原创]PHP代码修正之CodeSniffer
参考链接
使用 PHP-CS-Fixer 的可以看这篇文章: https://learnku.com/laravel/t/547/use-php-cs-fixer-to-automatically-standardize-your-php-code
介绍
PHP_CodeSniffer 是一个代码风格检测工具。它包含两类脚本,phpcs
和 phpcbf
(GitHub地址)
phpcs
脚本对 PHP
、JavaScript
、CSS
文件定义了一系列的代码规范(通常使用官方的代码规范标准,比如 PHP
的 PSR2
),能够检测出不符合代码规范的代码并发出警告或报错(可设置报错等级)。
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
使用
命令行模式
将
phpcs
和phpcbf
的目录加入环境变量设置默认代码标准
为了避免每次手动指定标准, 直接设置默认的代码标准为 PSR-2
phpcs --config-set default_standard PSR2
phpcbf --config-set default_standard PSR2
检测代码文件
phpcs test.php
此时命令行会提示发现的问题列表, 带
[x]
的表示可以被phpcbf
修正若需要每次执行时指定代码格式标准, 则加上
–standard=<standard>
phpcs --standard=PSR2 test.php
修正代码
phpcbf test.php
此时会修正问题列表中带
[x]
的问题
PHPStorm
让编辑器使用PSR-2标准
1、打开PhpStorm
的设置页(File->Setting
),到Editor->Code Style->PHP
页PHP
中选择风格为 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
的规则基本一致了,但也有一小部分不一致,所以后面还要用到phpcs
和phpcbf
如果每次都在终端去执行花费时间可不少,为了提高工作效率,可以在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的更多相关文章
- 【转载/修改】ScrollLayout代码修正,追加模仿viewpager滚动速度
组件作用为类似ViewPager但直接插视图的横向滚动容器. 修改自:http://blog.csdn.net/yaoyeyzq/article/details/7571940 在该组件基础上修正了滚 ...
- 原创:js代码, 让dedecms支持Tag选择, 添加内容更为方便,不用手输Tag
dedecms在编辑修改内容时,TAG标签需要手动输,中文的Tag, 中间还得用半角字符','分隔, 输入法切来切去很不方便, 于是动手改后台代码, 利用后台的tags_main.php, 让d ...
- [原创]-[WEB]代码高亮工具
代码高亮显示,不是什么新鲜玩艺了,各种各样的插件多了去了. 一开始想在baidu空间里贴代码,用GeSHi生成的高亮HTML复制到编辑器就可以了,不过QQ空间却不行,复制过去的格式全部被清 ...
- PhpStorm添加PHP代码规范检查CodeSniffer(phpcs)和PHP代码静态分析工具Mess Detector(phpmd)
一.安装 添加镜像,加速下载 ./composer.phar config -g repo.packagist composer https://packagist.phpcomposer.com ...
- 对于国嵌上学期《一跃进入C大门》Mini2440的代码修正
摸索了几天,加了无数的群,病急乱投医式地问了好多个人,终于改对了代码. 下面先贴出给的范例代码 这是C语言代码,是没有错的. 那么出错的地方就在start.S部分 很明显,MPLLCON地址错误,正确 ...
- [NLP] The Annotated Transformer 代码修正
1. RuntimeError: "exp" not implemented for 'torch.LongTensor' class PositionalEncoding(nn. ...
- vscode vue 项目保存运行lint进行代码修正
{ "editor.tabSize": 2, "files.associations": { "*.vue": "vue" ...
- c#将金额转换为大写,支持小数点,原创经典
网上搜的都有问题,这个代码属于原创,代码简洁,支持小数点,若没有小数点,则为整 /// <summary> /// 将金额转换成大写 /// </summary> /// &l ...
- 【LDA】修正 GibbsLDA++-0.2 中的两个内存问题
周末这两天在家用LDA做个小实验. 在LDA的众多实现的工具包中.GibbsLDA 是应用最广泛的.包含c++版本号.java版本号等.GibbsLDA++ 是它的C++版本号的实现.眼下最新版本号是 ...
随机推荐
- WPF DevExpress Chart控件 界面绑定数据源,不通过C#代码进行绑定
<Grid x:Name="myGrid" Loaded="Grid_Loaded" DataContext="{Binding PartOne ...
- Struts2测试题
今天给大家看一套我最近做的一套关于Struts2的题: 1.以下关于jQuery说法错误的选项是( D ). A.“$”为jQuery脚本库的默认全局变量名,即“$” = “jQuery” B.$.a ...
- 【奇技淫巧】使用 SSH 转发 Sock5 流量
标题:使用 SSH 转发 Sock5 流量 日期:2018-06-27 介绍:使用 ssh 来做个 sock5 的代理,穿透到内网中做后渗透 0x01. 基本信息 在 ubuntu(10.211.55 ...
- OPEN SQL:插入、删除、修改语法
1. UPDATE 用于实现对数据据的更新操作,语法如下: UPDATE <dbtab> set f1...fn (where <condition>). UPDATE < ...
- 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, ...
- golang 千位分隔符
项目需求将统计出的数字以千位分隔符分隔的形式展示(如将 1234567.89 格式化为 1,234,567.89),而 golang 的标准库中并无这样的函数. 万能的 google 找到解决办法,可 ...
- Gradle之Android Gradle Plugin 主要流程分析(二)
[Android 修炼手册]Gradle 篇 -- Android Gradle Plugin 主要流程分析 预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin ...
- 【Linux 应用编程】基础知识
错误提示 Linux 提供的系统调用API,通常会在失败的时候返回 -1.如果想获取更多更详细的报错信息,需要借助全局变量 errno 和 perror 函数: #include <stdio. ...
- spring(二) JDBC
一.配置 bean.xml , 链接数据库. c3p0数据库连接池 <?xml version="1.0" encoding="UTF-8"?> & ...
- 用seaborn对数据可视化
以下用sns作为seaborn的别名 1.seaborn整体布局设置 sns.set_syle()函数设置图的风格,传入的参数可以是"darkgrid", "whiteg ...