怎样运用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/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 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.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
代码标准作为标准,你也可以选中 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 中停止增加,下面是我的一个示例,根本可以照搬 :)
Parameter | Value |
---|---|
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检查代码标准(详解)的具体内容,更多请关注百分百源码网其它相关文章!