PHP_CodeSniffer - PHP_CodeSniffer 标记 PHP 文件并检测违反一组定义的编码标准。

Created at: 2011-11-03 12:06:24
开发语言: PHP
授权协议: BSD-3-Clause

大约

PHP_CodeSniffer是一组两个PHP脚本;标记 PHP、JavaScript 和 CSS 文件以检测违反已定义编码标准的主脚本,以及自动更正编码标准冲突的第二个脚本。PHP_CodeSniffer是一个重要的开发工具,可确保代码保持干净和一致。

phpcs
phpcbf

构建状态 构建状态 代码一致性 加入 https://gitter.im/squizlabs/PHP_CodeSniffer 聊天

要求

PHP_CodeSniffer需要 PHP 版本 5.4.0 或更高版本,尽管单个嗅探器可能有其他要求,例如外部应用程序和脚本。有关这些要求的列表,请参阅配置选项手册页

如果你将PHP_CodeSniffer作为团队的一部分使用,或者你正在 CI 服务器上运行它,则可能需要使用配置文件配置项目的设置。

安装

开始使用PHP_CodeSniffer的最简单方法是下载每个命令的 Phar 文件:

# Download using curl
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar

# Or download using wget
wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
wget https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar

# Then test the downloaded PHARs
php phpcs.phar -h
php phpcbf.phar -h

作曲家

如果使用 Composer,则可以使用以下命令在系统范围内安装PHP_CodeSniffer:

composer global require "squizlabs/php_codesniffer=*"

确保你的 PATH 中有作曲家 bin 目录。默认值为 ,但你可以通过运行 来检查需要使用的值。

~/.composer/vendor/bin/
composer global config bin-dir --absolute

或者,在文件中包含 的依赖项。例如:

squizlabs/php_codesniffer
composer.json

{
    "require-dev": {
        "squizlabs/php_codesniffer": "3.*"
    }
}

然后,你将能够从供应商 bin 目录运行PHP_CodeSniffer:

./vendor/bin/phpcs -h
./vendor/bin/phpcbf -h

菲夫

如果使用 Phive,则可以使用以下命令将PHP_CodeSniffer作为项目工具进行安装:

phive install phpcs
phive install phpcbf

然后,你将能够从 tools 目录运行PHP_CodeSniffer:

./tools/phpcs -h
./tools/phpcbf -h

如果使用 PEAR,则可以使用 PEAR 安装程序安装PHP_CodeSniffer。这将使 和 命令立即可供使用。要使用 PEAR 安装程序安装PHP_CodeSniffer,请首先确保已安装 PEAR,然后运行以下命令:

phpcs
phpcbf

pear install PHP_CodeSniffer

Git 克隆

你还可以下载PHP_CodeSniffer源,并直接从 Git 克隆运行 和 命令:

phpcs
phpcbf

git clone https://github.com/squizlabs/PHP_CodeSniffer.git
cd PHP_CodeSniffer
php bin/phpcs -h
php bin/phpcbf -h

开始

PHP_CodeSniffer使用的默认编码标准是PEAR编码标准。要根据 PEAR 编码标准检查文件,只需指定文件的位置:

phpcs /path/to/code/myfile.php

或者,如果你希望检查整个目录,则可以指定目录位置而不是文件。

phpcs /path/to/code-directory

如果你希望根据 PSR-12 编码标准检查代码,请使用命令行参数:

--standard

phpcs --standard=PSR12 /path/to/code-directory

如果PHP_CodeSniffer发现任何编码标准错误,则在运行命令后将显示一个报告。

完整的使用情况信息和示例报告可在使用情况页面上找到

文档

PHP_CodeSniffer的文档可在 Github 维基上找到。

问题

错误报告和功能请求可以在 Github 问题跟踪器上提交。

贡献

有关信息,请参阅 CONTRIBUTING.md

版本控制

PHP_CodeSniffer使用版本号格式。

MAJOR.MINOR.PATCH

在以下情况下,版本将递增:

MAJOR

  • 对 or 命令的使用方式进行向后不兼容的更改,或者
    phpcs
    phpcbf
  • 对格式进行向后不兼容的更改,或者
    ruleset.xml
  • 对嗅探开发人员使用的 API 进行向后不兼容的更改,或者
  • 删除自定义PHP_CodeSniffer令牌类型,或者
  • 从PHP_CodeSniffer中完全删除现有嗅探

在以下情况下,版本将递增:

MINOR

  • 新的向后兼容功能已添加到 和 命令中,或者
    phpcs
    phpcbf
  • 对格式进行向后兼容的更改,或者
    ruleset.xml
  • 对嗅探开发人员使用的 API 进行向后兼容的更改,或者
  • 新的嗅探器被添加到包含的标准中,或者
  • 从包含的标准中删除现有嗅探器

注意:对嗅探开发人员使用的 API 进行的向后兼容更改将允许现有嗅探继续运行而不会产生致命错误,但可能不会导致嗅探报告与以前相同的错误,而无需进行更改。

在以下情况下,版本将递增:

PATCH

  • 向后兼容的错误修复

注意:由于存在PHP_CodeSniffer来报告和修复问题,因此大多数错误都是由于编码标准错误被错误地报告或编码标准错误未在应该报告的时候报告而导致的。这意味着PHP_CodeSniffer生成的消息及其修复程序在 PATCH 版本之间可能会有所不同。