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
说明:
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命令。
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了。
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] 举报,一经查实,本站将立刻删除。