在我们开辟中都会考究代码范例,假如个人开辟者,代码范例与否,只需本身看得懂便能够了,但是在团队合作中,代码划定尤为重要,下面,我们引见一款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相干学问,请接见ki4网!
以上就是PHP_CodeSniffer装置和运用教程(自动代码搜检范例东西)的细致内容,更多请关注ki4网别的相干文章!