您好,欢迎访问一九零五行业门户网

如何使用PHP_CodeSniffer检查代码规范(详解)

有些同学可能还没听过这东西,大概介绍一下:
php_codesniffer 是一个代码风格检测工具。它包含两类脚本,phpcs 和 phpcbf(github地址)。
phpcs 脚本对 php、javascript、css 文件定义了一系列的代码规范(通常使用官方的代码规范标准,比如 php 的 psr2),能够检测出不符合代码规范的代码并发出警告或报错(可设置报错等级)。
phpcbf 脚本能自动修正代码格式上不符合规范的部分。比如 psr2 规范中对每一个 php 文件的结尾都需要有一行空行,那么运行这个脚本后就能自动在结尾处加上一行空行。
安装
推荐使用 composer 来安装:
composer global require squizlabs/php_codesniffer=*
安装完后就会在全局的 vendor 目录下的 bin 中生成两个软链接:
phpcbf -> ../squizlabs/php_codesniffer/bin/phpcbfphpcs -> ../squizlabs/php_codesniffer/bin/phpcs
如果你不知道全局 vendor 目录在哪,用下这个命令吧:
composer global config bin-dir --absolute
命令行使用
到这一步,其实你就可以愉快的使用这两个命令了:
哦,不过如果要全局使用这两个命令那还是做个软链接放在 /usr/local/bin 下吧~
$ phpcs test.phpfile: /users/stephen/develop/code/test.php--------------------------------------------------------------------------------------------found 2 errors affecting 2 lines-------------------------------------------------------------------------------------------- 2 | error | [ ] missing file doc comment 3 | error | [x] true, false and null must be lowercase; expected false but found false--------------------------------------------------------------------------------------------phpcbf can fix the 1 marked sniff violations automatically--------------------------------------------------------------------------------------------time: 45ms; memory: 4mb$ phpcbf test.phpphpcbf result summary----------------------------------------------------------------------file                                                  fixed  remaining----------------------------------------------------------------------/users/stephen/develop/code/test.php                  1      1----------------------------------------------------------------------a total of 1 error were fixed in 1 file----------------------------------------------------------------------time: 49ms; memory: 4mb
sublime text 中集成
安装插件
前提 package control 要安装好,这个你肯定没问题的(莫名的自信,逃)
安装 phpcs 这个插件,然后打开这个插件的 settings - user 和 settings - default,将后者的内容全部复制到前者。
配置插件
将以下这几个配置项配置一下:
当前环境中 php 的执行路径
phpcs_php_prefix_path: /usr/bin/php,
当前环境中 phpcs 的执行路径
phpcs_executable_path: ~/.composer/vendor/bin/phpcs,
执行脚本时额外添加的参数,一般以 psr2 代码规范作为标准,你也可以选择 psr1、pear 等
phpcs_additional_args: {    --standard: psr2,    -n: },
当前环境中 phpcbf 的执行路径
phpcbf_executable_path: /users/stephen/.composer/vendor/bin/phpcbf,
开启保存就执行 cbf 脚本功能
phpcbf_on_save: true,
现在就可以愉快的玩耍了,编辑完 .php 后缀的文件保存后就会自动回复修正代码不规范的地方。
这个插件还有其他代码规范可以设置的地方,比如 php mess detector settings、php linter settings、php scheck settings
下次在研究其他几个,目前是够我用了,逃)
phpstrom 中集成
配置 code sniffer
在 settings -> languages & frameworks -> php -> code sniffer 中对 phpcs 进行配置
点击 configuration: local 旁边的 ...,将当前环境的 phpcs 执行脚本所在路径配置进去,旁边有一个 validate 按钮可以进行验证,其他两个参数默认就好,这里也稍微说一下吧。
maxumum number of messages per file[1...100]:每个文件最多显示不符合代码规范的条数,一般出现50个了那你有很多工作可以做了,其实10个就够了,尤其对我这种代码洁癖和强迫症晚期的人来说一个足矣  。。。
tool process timeout, sec[1...30]:脚本执行的超时时间
开启验证
在 settings -> editor -> inspections 中进行开启
找到 php -> php code sniffer validation 选项,对其打钩,在右侧进行详细配置
我是将 options -> show warnings as: error 开启了,当然你也可以选择 warnning,提示级别高一点能够强迫自己,没啥不好的吧~
coding standard 依旧是选择 psr2,如果找不到这个选项,记得点一下紧挨着的刷新按钮。
自动修复
我找了半天没发现 phpstrom 有支持 phpcbf 的可用选项,所以只能通过 external tools 来实现了。
在 settings -> tools -> external tools 中进行添加,下面是我的一个示例,基本可以照搬 :)
parametervalue
name phpcbf
description automatically correct coding standard violations.
program phpcbf
parameters --standard=psr2 $filedir$/$filename$
现在就可以在菜单栏上的 tools -> external tools 中找到它并愉快的使用了。
亮哥,这样很不方便诶。。。
那就加一个快捷键把。。。
在 settings -> keymap -> external tools -> phpcbf 中进行添加快捷键操作,我设置的是 option + f,或者 windows 上的 alt + f。
蜜汁延伸
之前没用 phpcbf,代码自动修复使用的是 php-cs-fixer,但后来发现两者功能差不多,所以秉着能少一个包就少一个包的原则,放弃了 php-cs-fixer。
有兴趣的自行拓展了解~
推荐:《php视频教程》
以上就是如何使用php_codesniffer检查代码规范(详解)的详细内容。
其它类似信息

推荐信息