PHP_CodeSniffer安装和使用方法

发布时间:2020-10-19 16:32:44 作者:小新
来源:亿速云 阅读:163

小编给大家分享一下PHP_CodeSniffer安装和使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

                                                           

在我们开发中都会讲究代码规范,若是个人开发者,代码规范与否,只要自己看得懂便可以了,但是在团队协作中,代码规定尤为重要,下面,我们介绍一款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_CodeSniffer安装和使用方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. nrm是什么?安装和使用方法
  2. sqoop的安装和使用方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php_codesniffer %d

上一篇:浅谈原生JS中的延迟脚本和异步脚本

下一篇:150m虚拟主机容量不足

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》