加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP_CodeSniffer是什么?怎么安装使用?

发布时间:2022-07-09 13:17:40 所属栏目:PHP教程 来源:互联网
导读:PHP_CodeSniffer是一款自动化的PHP代码规范检查工具。 CodeSniffer内置MySource、PEAR、PHPCS、PSR1、PSR2、Squiz和Zend等几套代码规范。 当然,你也可以新增自己的代码规范。 PHP_CodeSniffer 仓库地址:https://github.com/squizlabs/PHP_CodeSniffer PHP_
  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:php56nphp.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:wwwPHP_CodeSniffer-2.9.1scriptsphpcs" %*
 
  然后把路径D:wwwPHP_CodeSniffer-2.9.1scripts加入到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

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读