微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP_CodeSniffer是什么?如何安装使用?

本篇文章给大家介绍PHP_CodeSniffer,以及其安装和使用教程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

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

CodeSniffer内置MySourcePEARPHPCSPSR1PSR2SquizZend等几套代码规范。

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

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.exePHPcs文件的绝对位置:

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教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐