phpcsstandards / 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 或更高版本,尽管单个嗅探器可能还需要其他一些要求,如外部应用程序和脚本。请参阅 配置选项手册页面,以获取这些要求的列表。
如果您将 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 文件使用带有指纹 689D AD77 8FF0 8760 E046 228B A978 2203 05CD 5C32
的 PHPCS 官方发布密钥进行签名。
从 PHP_CodeSniffer 3.10.3 版本开始,可以通过使用 GitHub Artifact Attestations 和以下命令的 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 版本之间可能不同。