正在咱们开发中城市考究代码标准,若是集体开发者,代码标准与否,只需本人看患上懂即可以了,然而正在团队合作中,代码规则尤其首要,上面,咱们引见一款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开发自学 规范 自动化
抱歉,评论功能暂时关闭!