PHP_CodeSniffer安装和使用教程(自动代码检查规范工具)-php教程

资源魔 46 0
PHP_CodeSniffer安装和使用教程(自动代码检查规范工具)

正在咱们开发中城市考究代码标准,若是集体开发者,代码标准与否,只需本人看患上懂即可以了,然而正在团队合作中,代码规则尤其首要,上面,咱们引见一款PHP_CodeSniffer,主动反省代码标准的对象。

PHP_CodeSniffer是一款主动化的PHP代码标准反省对象

CodeSniffer内置MySource、PEAR、PHPCS、PSR一、PSR二、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 co妹妹ent
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 co妹妹ent
88 | ERROR | Line not indented correctly; expected 9 spaces but found 6
--------------------------------------------------------------------------------

假如没有要显示正告,加个-n参数:

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

仅显示反省后果概要:

$ phpcs --report=su妹妹ary /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_CodeSniffer装置以及应用教程(主动代码反省标准对象)的具体内容,更多请存眷资源魔其它相干文章!

标签: php开发教程 php开发资料 php开发自学 规范 自动化

抱歉,评论功能暂时关闭!