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

Created at: 2011-11-03 12:06:24
Language: PHP
License: 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 dir。默认值为 ,但你可以通过运行 来检查需要使用的值。

~/.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

然后,你将能够从工具目录运行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 克隆运行 and 命令:

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 wiki 上找到。

问题

错误报告和功能请求可以在 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 版本之间可能有所不同。