PHP_CodeSniffer是一组两个 PHP 脚本;主脚本标记 PHP、JavaScript 和 CSS 文件以检测违反定义的编码标准的情况,第二个脚本用于自动更正违反编码标准的情况。PHP_CodeSniffer 是必不可少的开发工具,可确保代码保持干净和一致。
phpcs
phpcbf
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
你还可以下载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
phpcs
phpcbf
ruleset.xml
在以下情况下,版本将递增:
MINOR
phpcs
phpcbf
ruleset.xml
注意:嗅探开发人员对使用的API进行向后兼容的更改将允许现有嗅探继续运行而不会产生致命错误,但不会导致嗅探报告与以前相同的错误,而无需进行更改。
在以下情况下,版本将递增:
PATCH
注意:由于存在报告和修复问题PHP_CodeSniffer,因此大多数错误都是由于错误地报告了编码标准错误或编码标准错误未在应该报告时报告的结果。这意味着 PHP_CodeSniffer 生成的消息及其所做的修复在 PATCH 版本之间可能有所不同。