squizlabs/php_codesniffer

PHP_CodeSniffer 将 PHP、JavaScript 和 CSS 文件进行标记化,并检测违反预定义编码标准的情况。

3.10.3 2024-09-18 10:38 UTC

This package is auto-updated.

Last update: 2024-09-18 16:48:32 UTC


README

Latest Stable Version Validate Test Coverage Status License

Minimum PHP Version Tested on PHP 5.4 to 8.3

注意

此包是现在已废弃的由 Squizlabs 创建的 PHP_CodeSniffer 包的官方延续

关于

PHP_CodeSniffer 是一组包含两个 PHP 脚本的工具;主脚本 phpcs 用于标记化 PHP、JavaScript 和 CSS 文件以检测违反预定义编码标准的情况,另一个脚本 phpcbf 用于自动纠正编码标准违反情况。PHP_CodeSniffer 是一个至关重要的开发工具,确保您的代码保持干净和一致。

要求

PHP_CodeSniffer 需要 PHP 版本 5.4.0 或更高版本,尽管某些 sniffs 可能需要额外的要求,例如外部应用程序和脚本。请参阅 配置选项手册页面,了解这些要求列表。

如果您作为团队使用 PHP_CodeSniffer,或者您在 CI 服务器上运行它,您可能希望使用配置文件 配置项目设置

安装

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

# Download using curl
curl -OL https://phars.phpcodesniffer.com/phpcs.phar
curl -OL https://phars.phpcodesniffer.com/phpcbf.phar

# Or download using wget
wget https://phars.phpcodesniffer.com/phpcs.phar
wget https://phars.phpcodesniffer.com/phpcbf.phar

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

这些 Phar 文件使用与 PHPCS 相关的官方发布密钥签名,指纹为 689D AD77 8FF0 8760 E046 228B A978 2203 05CD 5C32

自 PHP_CodeSniffer 3.10.3 版本以来,可以通过使用 GitHub 文件证明 和以下命令使用 GitHub CLI 工具 验证与发布关联的 PHAR 文件的来源:gh attestation verify [phpcs|phpcbf].phar -o PHPCSStandards

Composer

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

composer global require "squizlabs/php_codesniffer=*"

请确保您在 PATH 中有 composer bin 目录。默认值为 ~/.composer/vendor/bin/,但您可以通过运行 composer global config bin-dir --absolute 来检查需要使用的值。

或者,在您的 composer.json 文件中包含对 squizlabs/php_codesniffer 的依赖项。例如

{
    "require-dev": {
        "squizlabs/php_codesniffer": "^3.0"
    }
}

然后您将能够从 vendor bin 目录运行 PHP_CodeSniffer

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

Phive

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

phive install --trust-gpg-keys 689DAD778FF08760E046228BA978220305CD5C32 phpcs
phive install --trust-gpg-keys 689DAD778FF08760E046228BA978220305CD5C32 phpcbf

然后您将能够从 tools 目录运行 PHP_CodeSniffer

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

Git Clone

您还可以下载 PHP_CodeSniffer 源代码,并直接从 Git 克隆运行 phpcsphpcbf 命令

git clone https://github.com/PHPCSStandards/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 Issue Tracker 上提交。

贡献

有关信息,请参阅 CONTRIBUTING.md

版本

PHP_CodeSniffer 使用 MAJOR.MINOR.PATCH 版本号格式。

MAJOR 版本在以下情况下递增:

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

MINOR 版本在以下情况下递增:

  • phpcsphpcbf 命令添加向后兼容的新功能,或者
  • ruleset.xml 格式做出向后兼容的更改,或者
  • 对嗅探开发人员使用的 API 做出向后兼容的更改,或者
  • 向包含的标准添加新嗅探规则,或者
  • 从包含的标准中删除现有嗅探规则

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

PATCH 版本在以下情况下递增:

  • 进行向后兼容的错误修复

注意:由于 PHP_CodeSniffer 用于报告和修复问题,大多数错误是编码标准错误报告错误或不报告应报告的编码标准错误的结果。这意味着 PHP_CodeSniffer 产生的消息以及它所做的修复可能在 PATCH 版本之间有所不同。