• 技术文章 >后端开发 >php教程

    PHP_CodeSniffer是什么?如何安装使用?

    藏色散人藏色散人2022-01-12 10:10:58转载377
    本篇文章给大家介绍PHP_CodeSniffer,以及其安装和使用教程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

    PHP_CodeSniffer是一款自动化的PHP代码规范检查工具

    CodeSniffer内置MySourcePEARPHPCSPSR1PSR2SquizZend等几套代码规范。

    当然,你也可以新增自己的代码规范

    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.exephpcs文件的绝对位置:

    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视频教程

    以上就是PHP_CodeSniffer是什么?如何安装使用?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:awaimai,如有侵犯,请联系admin@php.cn删除
    专题推荐:PHP_CodeSniffer
    上一篇:可用于PHP Hyperf的计数器限流组件(安装配置) 下一篇:PHP也可以实现词法分析与自定义语言!

    相关文章推荐

    • phpStorm怎么配置PHP_CodeSniffer自动检查代码• 如何使用PHP_CodeSniffer检查代码规范(详解)• 如何一分钟搞定PHP框架开发的规范?• 分享一份PHP开发内部规范

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网