如何使用PHP_CodeSniffer检查代码规范(详解)-php教程

资源魔 44 0

有些同窗可能还没听过这货色,大略引见一下:

PHP_CodeSniffer 是一个代码格调检测对象。它蕴含两类剧本,phpcs 以及 phpcbf(GitHub地点)。

phpcs 剧本对 PHPJavaScriptCSS 文件界说了一系列的代码标准(通常应用民间的代码标准规范,比方 PHPPSR2),可以检测出没有合乎代码标准的代码并收回正告或报错(可设置报错等级)。

phpcbf 剧本能主动修改代码格局上没有合乎标准的局部。比方 PSR2 标准中对每个 PHP 文件的末端都需求有一行空行,那末运转这个剧本后就能主动正在末端处加之一行空行。

装置

保举应用 composer 来装置:

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

饬令利用用

到这一步,其实你就能够欢快的应用这两个饬令了:

哦,不外假如要全局应用这两个饬令那仍是做个软链接放正在 /usr/local/bin 下吧~

$ phpcs test.php

FILE: /Users/stephen/Develop/Code/test.php
--------------------------------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 2 LINES
--------------------------------------------------------------------------------------------
 2 | ERROR | [ ] Missing file doc co妹妹ent
 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.php

PHPCBF 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 代码标准作为规范,你也能够抉择 PSR1PEAR

"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 settingsPHP Linter settingsPHP 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
Namephpcbf
DescriptionAutomatically correct coding standard violations.
Programphpcbf
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反省代码标准(详解)的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 Code Sniffer 代码规范

抱歉,评论功能暂时关闭!