在前段时间的文章:在PhpStorm中安装使用PHP_CodeSniffer编码规范检查工具中提到过phpcbf脚本
phpcbf
脚本能自动修正代码格式上不符合规范的部分,比如 PSR2
规范中对每一个PHP文件的结尾都需要有一行空行,那么运行这个脚本后就能自动在结尾处加上一行空行
今天就说一下这个脚本怎么集成在PhpStorm
中,方便我们使用
安装
看过之前文章的同学应该已经都安装了,没看过的去看一下之前的文章,使用pear
安装PHP_CodeSniffer
安装成功后,你的PHP根目录中会有多出一些文件,包括以下文件:
phpcbf
phpcbf.bat
phpcs
phpcs.bat
使用
先说一点,phpcbf
只能处理代码风格等方式,而不能帮你处理里面的命名与代码实现规则,所以有少部分还需要人为去更正,但并不会太多,强迫症勿纠结
命令行模式
这里也提一下phpcs
的使用,一般来说我们都会把 PHP 加入环境变量,phpcbf
和phpcs
在 PHP 的目录下,所以可以直接使用命令行去操作,如果不行的话,添加一下环境变量
设置默认标准
phpcs
默认的编码格式并不是PSR2
,所以当不指定标准的时候,检测的结果并不准确,但每次都手动指定也挺麻烦,所以可以设置一个默认标准,命令如下:
phpcs --config-set default_standard PSR2
phpcbf --config-set default_standard PSR2
实操
然后我们来实际操作一下,先准备一个PHP文件,文件里面的内容如下代码示例,可以看出这份代码并不符合PSR-2的风格规范
<?php
function test_test(){
echo 'sy-records';
}
test();
使用命令来检测一下
phpcs D:/phpStudy/WWW/test.php
命令执行完成之后,可以看到如下代码提示,在提示中就能看到具体哪一行,提示级别,以及具体的提示原因
--------------------------------------------------------------------------------
FOUND 4 ERRORS AND 1 WARNING AFFECTING 4 LINES
--------------------------------------------------------------------------------
1 | WARNING | [ ] A file should declare new symbols (classes, functions,
| | constants, etc.) and cause no other side effects, or it
| | should execute logic with side effects, but should not do
| | both. The first symbol is defined on line 3 and the first
| | side effect is on line 7.
1 | ERROR | [x] End of line character is invalid; expected "\n" but found
| | "\r\n"
3 | ERROR | [x] Opening brace should be on a new line
4 | ERROR | [x] Spaces must be used to indent lines; tabs are not allowed
7 | ERROR | [x] Expected 1 newline at end of file; 0 found
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 4 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------
Time: 108ms; Memory: 4Mb
我们来使用自动格式化编码风格命令
phpcbf D:/phpStudy/WWW/test.php
命令执行完成之后,可以看到如下返回提示,处理了哪一些文件,以及类型
PHPCBF RESULT SUMMARY
----------------------------------------------------------------------
FILE FIXED REMAINING
----------------------------------------------------------------------
D:\phpStudy\WWW\test.php 4 1
----------------------------------------------------------------------
A TOTAL OF 4 ERRORS WERE FIXED IN 1 FILE
----------------------------------------------------------------------
Time: 195ms; Memory: 4Mb
然后我们再次使用检测命令进行检测
FILE: D:\phpStudy\WWW\test.php
--------------------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
--------------------------------------------------------------------------------
1 | WARNING | A file should declare new symbols (classes, functions,
| | constants, etc.) and cause no other side effects, or it should
| | execute logic with side effects, but should not do both. The
| | first symbol is defined on line 3 and the first side effect is
| | on line 8.
--------------------------------------------------------------------------------
Time: 106ms; Memory: 4Mb
能看到最开始检测有四次不合格,但现在只剩下一处了
这里说一下为什么phpcbf
没有完全帮处理呢,因为phpcbf
只能处理代码风格等方式,而不能帮你处理里面的命名与代码实现规则,所以有少部分还需要人为去更正,但并不会太多
发表评论
沙发空缺中,还不快抢~