有些同学可能还没听过这东西,大概介绍一下:

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

ValueName

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。

有兴趣的自行拓展了解~

本作品采用《CC 协议》,转载必须注明作者和本文链接

公众号:编程之谜

php codesniffer,PHP 系列:代码规范之 Code Sniffer相关推荐

  1. 前端代码规范之代码格式化配置

    前言 由于每个前端人员的格式化配置或安装的格式化插件不一,导致在对项目开发的过程中代码风格不一,影响团队开发效率: 为了方便维护及统一代码风格制定团队的一套格式化配置,来对项目代码进行约束以及对部分问 ...

  2. php 代码规范 工具,PHP工具篇:PHPStorm IDE使用CodeSniffer代码规范化管理

    PHPStorm IDE使用CodeSniffer进行代码规范化管理 PHP_CodeSniffer是一个优秀的代码风格检测工具,定义了一系列的代码规范(通常使用官方的代码规范标准,比如PHP的PSR ...

  3. PhpStorm添加PHP代码规范检查CodeSniffer(phpcs)和PHP代码静态分析工具Mess Detector(phpmd)

    首先需要了解一下这些工具是用来干什么: PHPCS 是 PHP Code Sniffer,一款代码规范检查工具,可以根据你的设置来检查代码规范性问题. PHPCBF 是PHPCS 内置的代码规范修复工 ...

  4. 如何检查php代码规范,用CodeSniffer检查PHP项目的代码规范

    PHP_CodeSniffer是一套用来检查代码规范的工具,是PEAR的一个包,可以通过PEAR直接安装: pear install PHP_CodeSniffer 详细的官方文档参见这里:http: ...

  5. PEP 8 -- Style Guide for Python Code。Python 代码规范。

    PEP 8 – Style Guide for Python Code 文章目录 PEP 8 -- Style Guide for Python Code 代码规范. PEP8 (pycodestyl ...

  6. 前端代码规范(1)谈code review

    前端谈code review 一.review代码的认知 1.code review目的 保证代码可读性,一致性 代码层面减少bug,最基本缺少控制判断.异常处理 传播知识+设计讨论. 相信很多人第一 ...

  7. php codesniffer 代码规范,规范三:PHP_CodeSniffer 辅佐代码规范

    >也可以参考此文:https://www.cnblogs.com/huangbx/p/php_codesniffer.html [TOC] 我用的是`wamp`,环境是`php7.0.23` # ...

  8. android开发学习笔记系列(6)--代码规范

    在开发android的时候,我对自己写的代码很是不满,原因在于自己看到别人的代码,很是头痛,原因很简单,别人写的代码,我就要去猜他的意思,极其烦恼,嗯,就是他没有遵循代码规范,因此我在博客园上寻找一篇 ...

  9. jsp文件命名规范_代码规范整理

    我喜欢优雅和高效的代码.代码逻辑应当直截了当,叫缺陷难以隐藏:尽量减少依赖关系,使之便于维护:依据某种分层战略完善错误处理代码:性能调至最优,省的引诱别人做没规矩的优化,高出一对混乱来.整洁的代码只做 ...

  10. 【总结】1165- 前端团队代码规范最佳实践,个人成长必备!

    作者:杨成功 原文:https://segmentfault.com/a/1190000040948561 本文从代码规范,代码检查,代码格式化,以及编辑器自动化实现的方向,介绍代码规范统一在我们团队 ...

最新文章

  1. C语言open和creat函数
  2. forget word a out 1
  3. ubuntu16.04设置静态IP
  4. linux shell判断当前目录下的文件或目录
  5. 一图解明Android Studio项目文件结构各部分作用
  6. WebConfig Authorization 节点
  7. Redis主从复制配置(原理剖析)
  8. 后端学 Angular 2 —— 组件间通信
  9. 15数字华容道解法 图解_密不外传的点穴秘技:15个穴位的取穴、点法、解法(上)...
  10. python编程狮app题库_‎Python编程狮-零基础学Python App Storessa
  11. 由李飞飞领导,斯坦福以人为本AI学院正式成立,比尔·盖茨来捧场
  12. 七日杀a17服务器修改,七日杀a17作弊指令
  13. [ Keil ] keil4工程转keil5方法
  14. CNN编辑:扯淡的WSJ,你们专黑Groupon三十年!
  15. 人生七年,耗时56年跟拍14个孩子,结局道尽人生残酷真相
  16. 手机点餐系统概述_基于Android无线点餐系统的设计与实现
  17. 织梦后台图片集图片内容框太小解决办法
  18. 百度之星2017 HDU 6114 Chess 组合数学
  19. 特斯拉“炸”降,蔚来、小鹏、理想们的路就平坦了么?
  20. 小米设备token获取HomeAssistant安装部署

热门文章

  1. HTML设置文字的格式
  2. 【GA MTSP】基于matlab遗传算法求解多旅行商问题(同起点不同终点)【含Matlab源码 1325期】
  3. 什么情况下会用上568A线序
  4. 机器学习十大算法---3. SVM
  5. 小罐茶:左手天堂,右手地狱
  6. 跟着团子学SAP PS:项目版本管理-项目模拟功能(CJV1/CJV2/CJV3/CJV4)
  7. ISP(图像信号处理)相关模块介绍
  8. WhbtomT(半路出家) 的每日英语 收集 (三)
  9. 用C#调用Matlab图像处理自制QQ游戏2D桌球瞄准器
  10. Linux命令怎么查找IP,在Linux中,如何查找您的IP地址