squizlabs / php_codesniffer
PHP_CodeSniffer 将 PHP、JavaScript 和 CSS 文件进行标记化,并检测违反预定义编码标准的情况。
Requires
- php: >=5.4.0
- ext-simplexml: *
- ext-tokenizer: *
- ext-xmlwriter: *
Requires (Dev)
- phpunit/phpunit: ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4
- 4.0.x-dev
- dev-master / 3.x-dev
- 3.10.3
- 3.10.2
- 3.10.1
- 3.10.0
- 3.9.2
- 3.9.1
- 3.9.0
- 3.8.1
- 3.8.0
- 3.7.2
- 3.7.1
- 3.7.0
- 3.6.2
- 3.6.1
- 3.6.0
- 3.5.8
- 3.5.7
- 3.5.6
- 3.5.5
- 3.5.4
- 3.5.3
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.1
- 3.1.0
- 3.0.x-dev
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0RC4
- 3.0.0RC3
- 3.0.0RC2
- 3.0.0RC1
- 3.0.0a1
- 2.9.x-dev
- 2.9.2
- 2.9.1
- 2.9.0
- 2.8.1
- 2.8.0
- 2.7.1
- 2.7.0
- 2.6.2
- 2.6.1
- 2.6.0
- 2.5.1
- 2.5.0
- 2.4.0
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.0
- 2.0.0RC4
- 2.0.0RC3
- 2.0.0RC2
- 2.0.0RC1
- 2.0.0a2
- 2.0.0a1
- 1.5.x-dev
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.5.0RC4
- 1.5.0RC3
- 1.5.0RC2
- 1.5.0RC1
- 1.4.8
- 1.4.7
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- dev-feature/php-8.4-build-phar-e_strict
- dev-feature/new-generic-heredocnowdocidentifierspacing-sniff
- dev-feature/common-add-tests-and-simplify
- dev-feature/changelog-3.10.3
- dev-feature/docs-various-fixes
- dev-feature/3.x-metrics-for-switch-statements
- dev-feature/variable-sniffs-minor-performance-tweak
- dev-TEST/ghactions-revert-code-coverage-php-version
- dev-phpcs-4.x/remove-external-tooling-sniffs
- dev-4.x/feature/ci-prevent-issues-with-code-coverage
- dev-feature/3769-improve-todo-fixme-sniffs
- dev-feature/dont-ignore-internal-errors
- dev-phpcs-4.x/gitattributes-dont-ignore-test-framework-files
- dev-feature/pear-psr2-psr12-functioncallsignature-check-anon-classes
- dev-phpcs-4.x/tokenizer-php-minor-tweak
- dev-phpcs-4.x/file-isreference-simplify
- dev-phpcs-4.x/3115-let-static-be-static
- dev-feature/psr12-fileheader-more-modular-errorcode-spacing-after
- dev-feature/add-security-file
This package is auto-updated.
Last update: 2024-09-18 16:48:32 UTC
README
注意
此包是现在已废弃的由 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 克隆运行 phpcs
和 phpcbf
命令
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
版本在以下情况下递增:
- 对
phpcs
或phpcbf
命令的使用方式做出向后不兼容的更改,或者 - 对
ruleset.xml
格式做出向后不兼容的更改,或者 - 对嗅探开发人员使用的 API 做出向后不兼容的更改,或者
- 删除自定义 PHP_CodeSniffer 令牌类型,或者
- 从 PHP_CodeSniffer 完全删除现有嗅探规则
MINOR
版本在以下情况下递增:
- 向
phpcs
和phpcbf
命令添加向后兼容的新功能,或者 - 对
ruleset.xml
格式做出向后兼容的更改,或者 - 对嗅探开发人员使用的 API 做出向后兼容的更改,或者
- 向包含的标准添加新嗅探规则,或者
- 从包含的标准中删除现有嗅探规则
注意:对嗅探开发人员使用的 API 的向后兼容更改将允许现有的嗅探规则继续运行而不会产生致命错误,但可能不会导致嗅探规则报告与之前相同的问题,除非进行更改。
PATCH
版本在以下情况下递增:
- 进行向后兼容的错误修复
注意:由于 PHP_CodeSniffer 用于报告和修复问题,大多数错误是编码标准错误报告错误或不报告应报告的编码标准错误的结果。这意味着 PHP_CodeSniffer 产生的消息以及它所做的修复可能在 PATCH 版本之间有所不同。