在我们开发中都会讲究代码规范,若是个人开发者,代码规范与否,只要自己看得懂便可以了,但是在团队协作中,代码规定尤为重要,下面,我们介绍一款PHP_CodeSniffer,自动检查代码规范的工具。

PHP_CodeSniffer是一款自动化的PHP代码规范检查工具。

CodeSniffer内置MySource、PEAR、PHPCS、PSR1、PSR2、Squiz和Zend等几套代码规范。

当然,你也可以新增自己的代码规范。

PHP_CodeSniffer 仓库地址:https://github.com/squizlabs/PHP_CodeSniffer

PHP_CodeSniffer 版本发布地址:http://pear.php.net/package/PHP_CodeSniffer

PHP_CodeSniffer包含两个工具,phpcs用来检查代码规范,phpcbf用来纠正代码规范。

1 安装

PHP_CodeSniffer 有好几种安装方式。

1.1 可执行文件方式安装

用git命令下载(或直接下载)仓库源码,然后直接执行:

git clone https://github.com/squizlabs/PHP_CodeSniffer.git

cd PHP_CodeSniffer

php bin/phpcs -h

php bin/phpcbf -h

要使用非最新版本,可以到PEAR下载,地址:http://pear.php.net/package/PHP_CodeSniffer/download

例如,要用2.9.1,PEAR下载之后解压,执行的命令是:

php scripts/phpcs -h

php scripts/phpcbf -h

与 githuh 下载不同的是,执行文件在scripts目录。

1.2 phar文件安装方式

phar也就是php archive,把php文件打包成一个文件供服务。

Linux系统用命令下载phar文件:

curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar

curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar

Windows系统用浏览器访问上面的两个链接,下载这两个phar文件。

然后在phar文件的目录里面执行:

php phpcs.phar -h

php phpcbf.phar -h

能看到phpcs和phpcbf的帮助信息,说明安装成功。

说明:

这种方式要保证php可执行文件已经添加到PATH环境,不然就得指定绝对目录

每次执行必须把这两个.phar文件放到对应目录,然后在那个目录下运php phpcs.phar xxx行命令

1.3 pear安装方式

如果本地安装了pear(pear安装方法),也可以通过pear来安装PHP_CodeSniffer,命令:

pear install PHP_CodeSniffer

通过pear安装后,CodeSniffer的规范文件会安装在:/path/to/pear/PHP/CodeSniffer/src/Standards。

1.4 composer安装方式

composer安装也很方便,一个命令:

composer global require "squizlabs/php_codesniffer=*"

说明:这里需要composer命令已经在PATH环境变量中。

也可以在composer.json文件中使用:

{

"require-dev": {

"squizlabs/php_codesniffer": "3.*"

}

}

完成后执行命令:

./vendor/bin/phpcs -h

./vendor/bin/phpcbf -h

1.5 配置phpcs直接在命令行中执行

以上的方式中,除了pear安装方式,其他方式要执行phpcs命令,都需要在前面加上php。

如果是Linux提供,因为php执行文件路径已经在环境PATH中,所以把bin(或scripts) 的路径加入PATH,就可以在终端执行phpcs命令了。

但是在Windows系统中,实际是执行phpcs.bat文件,这个文件又引用了同目录下的phpcs文件。

在phpcs.bat中,我们需要配置两个变量,才能在CMD中正确执行phpcs命令。

如下,需指定php.exe和phpcs文件的绝对位置:

if "%PHPBIN%" == "" set PHPBIN=D:\php56n\php.exe

if not exist "%PHPBIN%" if "%PHP_PEAR_PHP_BIN%" neq "" goto USE_PEAR_PATH

GOTO RUN

:USE_PEAR_PATH

set PHPBIN=%PHP_PEAR_PHP_BIN%

:RUN

"%PHPBIN%" "D:\www\PHP_CodeSniffer-2.9.1\scripts\phpcs" %*

然后把路径D:\www\PHP_CodeSniffer-2.9.1\scripts\加入到PATH中,就可以在CMD中执行phpcs了。

说明:phpcbf也需要这样的修改。

2 使用

上面我们看到 PHP_CodeSniffer 有两个命令。

默认情况下,PHP_CodeSniffer 使用PEAR规范检查代码。

2.1 使用命令

以下命令用默认规范来来检查文件和目录。

$ phpcs /path/to/code/myfile.php # 检查文件

$ phpcs /path/to/code # 检查目录和子目录下的所有文件

$ phpcs -l /path/to/code # 检查目录下的所有文件,不包括子目录

$ phpcs /path/to/code/myfile.inc /path/to/code/my_dir # 检查文件和目录

2.2 检查结果

默认情况下,检查结果包含错误和警告,如下:

$ phpcs /path/to/code/myfile.php

FILE: /path/to/code/myfile.php

--------------------------------------------------------------------------------

FOUND 5 ERROR(S) AND 1 WARNING(S) AFFECTING 5 LINE(S)

--------------------------------------------------------------------------------

2 | ERROR | Missing file doc comment

20 | ERROR | PHP keywords must be lowercase; expected "false" but found

| | "FALSE"

47 | ERROR | Line not indented correctly; expected 4 spaces but found 1

47 | WARNING | Equals sign not aligned with surrounding assignments

51 | ERROR | Missing function doc comment

88 | ERROR | Line not indented correctly; expected 9 spaces but found 6

--------------------------------------------------------------------------------

如果不要显示警告,加个-n参数:

$ phpcs -n /path/to/code/myfile.php

仅显示检查结果概要:

$ phpcs --report=summary /path/to/code

2.3 指定规范

可以使用 — standard参数指定一个或多个规范来检查。

$ phpcs --standard=PEAR /path/to/code/myfile.inc # 使用内置规范

$ phpcs --standard=/path/to/MyStandard /path/to/code/myfile.inc # 使用指定路径下的规范

$ phpcs --standard=PEAR,PHPCS,/path/to/MyStandard file.php # 使用多个规范

$ phpcs --config-set default_standard Squiz # 修改默认规范为Squiz(原本是PEAR)

查看现有规范:

$ phpcs -i

2.4 查看帮助

$ phpcs -h

更多PHP相关知识,请访问PHP中文网!

php 代码 自动检查工具下载,PHP_CodeSniffer安装和使用教程(自动代码检查规范工具)...相关推荐

  1. linux下的安装命令行工具下载,本地安装DEB包的3种命令行工具(适合Debian体系)

    1. 前言 在本教程中,我们将学习如何使用三种不同的命令行工具(dpkg.apt和gdebi)在Debian及其衍生产品(如Ubuntu和Linux Mint)中安装本地软件包(. deb). 这对那 ...

  2. kettle工具下载、安装、数据迁移、定时任务详解

    kettle工具下载.安装.数据迁移.定时任务详解 篇幅有点长,将这五个内容放在了一篇文章里,其中最主要的是数据迁移和定时任务 目录 目录 一.简单介绍 二.下载 三.安装 四.数据迁移:包括单表整体 ...

  3. go语言01SDK、GoLand开发工具下载和安装

    Go语言学习01:SDK.GoLand开发工具下载和安装,及测试第一个程序:输出hello world 半夜凌晨写的笔记,如果对你有帮助,加个关注或点赞哈感谢,吼吼~ Go语言的学习,开始安装软件就遇 ...

  4. python学习一(python与pip工具下载与安装)

    python学习一(python与pip工具下载与安装)  一 Python下载  二 安装Python  三 安装 pip   3.1 采用cd命令进入到Scripts 目录下面   3.2 输入命 ...

  5. MRT转换工具下载与安装以及使用

    MRT转换工具下载与安装 链接:https://blog.csdn.net/gisboygogogo/article/details/75784080 MRT(MODIS Reprojection T ...

  6. MRT(MODIS Reprojection Tool) 工具下载及安装教程

    @MRT(MODIS Reprojection Tool) 工具下载及安装教程 数据下载 链接:https://pan.baidu.com/s/1DKUlQ9AULG2p6-wFjqbatQ 提取码: ...

  7. 微信小程序开发工具下载以及安装教程

    微信小程序开发工具下载以及安装教程 听语音 浏览:0 | 更新:2019-01-09 16:53 1 2 3 4 5 6 7 分步阅读 查看全文 http://www.taodudu.cc/news/ ...

  8. 抓包工具:Fiddler下载、安装、使用 教程

    文章目录 抓包工具:Fiddler下载.安装.使用 教程 一.Fiddler 下载 二.Fiddler 安装 三.Fiddler 使用 3.Statistics 请求的性能数据分析 4.Inspect ...

  9. 中国蚁剑下载、安装、使用教程

    文章目录 中国蚁剑下载.安装.使用教程 一.中国蚁剑下载 二.中国蚁剑安装 三.中国蚁剑使用 1.添加一个shell 2.插件 3.关于编码器 4.user-agent修改 中国蚁剑下载.安装.使用教 ...

最新文章

  1. LeetCode Guess Number Higher or Lower II(动态规划)
  2. leetcode算法题-- 买卖股票的最佳时机
  3. 【wpf WebBrowser 清空网站的CookieSession 清空用户登录状态】
  4. python的数据类型_Python支持哪些数据类型
  5. 根据word模版导入word中用户填写的数据
  6. soap和web services
  7. iOS:在OC中调用JS脚本
  8. 斗鱼直播分享html代码,用纯javascript实现斗鱼直播弹幕效果,代码也才这么点-优酷弹幕怎么设置...
  9. vue引入阿里云图标
  10. html返回顶部开始隐藏,回到顶部并且监听顶部按钮显示或隐藏
  11. Sharepoint开发中CAML的介绍
  12. 如何用手机远程控制电脑
  13. mysql drop view_SQL CREATE VIEW、REPLACE VIEW、 DROP VIEW 语句 | 菜鸟教程
  14. Winform打开和关闭控制台
  15. 你的跑步姿势正确吗? 教你正确跑步姿势 常识
  16. php word权限设置密码,在php中加密和解密word docx文件的问题
  17. 重装计算机键入用户名,电脑用户名,小编教你电脑用户名怎么修改
  18. 细化FFT(Zoom—FFT)
  19. No Xcode or CLT version detected
  20. NetLogo 初步认识

热门文章

  1. java安全(五)java反序列化
  2. pythonhelloworld实例_Python基于Tkinter的HelloWorld入门实例
  3. nova8pro能升级鸿蒙吗,华为将有48款产品可以升级到鸿蒙 2.0系统
  4. java ee jaas_java-ee – Tomcat-Jaas – 如何检索主题?
  5. python默认深拷贝_Python 深拷贝与浅拷贝
  6. @value 默认值为null_JAVA8之妙用Optional解决判断Null为空的问题
  7. LDAP----manage-account
  8. macOS 10.11.* 安装scrapy
  9. 学生机房虚拟化(十)系统操作设计实现
  10. Oracle Linux 6.5 RPM安装Mysql 5.7.11