php-collective / code-sniffer
PhpCollective 代码检查器标准
0.2.7
2024-08-05 13:52 UTC
Requires
- php: >=8.1
- slevomat/coding-standard: ^8.14.1
- squizlabs/php_codesniffer: ^3.8.0
Requires (Dev)
- phpstan/phpstan: ^1.0.0
- phpunit/phpunit: ^10.3 || ^11.2
README
此检查器包完全遵循 PSR-2 并附带大量额外的修复器(包括 PSR-12)。有关详细信息,请参阅 PhpCollective 编码规范。
文档
查看 文档。
上游文档:squizlabs/PHP_CodeSniffer/wiki
使用方法
如何在项目中使用
请确保将检查器作为 require-dev
依赖项包含
composer require --dev php-collective/code-sniffer
然后在项目的根目录中设置一个 phpcs.xml
文件,例如。
<?xml version="1.0"?> <ruleset name="your-app-name"> <file>src/</file> <file>tests/</file> <rule ref="vendor/php-collective/code-sniffer/PhpCollective/ruleset.xml"/> <!-- Here you can add more or also silence existing ones --> </ruleset>
如何在任何项目中使用
您可以手动调用 phpcs/phpcbf 命令
vendor/bin/phpcs
vendor/bin/phpcbf
命令 phpcs
仅进行检查,phpcbf
进行修复。
建议设置 composer 脚本来使用快捷方式
"scripts": {
"cs-check": "phpcs -nps",
"cs-fix": "phpcbf -nps"
}
然后您可以使用 composer cs-c
和 composer cs-f
,无需担心缩写。
标准
您始终可以将标准切换到更严格的名为 PhpCollectiveStrict
的标准。它是 PhpCollective
标准的扩展,在顶部添加了它自己的(严格)检查项。
如何包含到您的 IDE 中
例如,对于 PHPStorm
- 打开设置 -> 工具 -> 外部工具
- 添加一个名为 "cs-sniffer" 的新工具,设置程序为
$ProjectFileDir$/vendor/bin/phpcs
,参数为--standard=$ProjectFileDir$/vendor/php-collective/code-sniffer/PhpCollective/ruleset.xml -p $FilePath$
,工作目录为$ProjectFileDir$
。 - 添加一个名为 "cs-fixer" 的新工具,设置程序为
$ProjectFileDir$/vendor/bin/phpcbf
,参数为--standard=$ProjectFileDir$/vendor/php-collective/code-sniffer/PhpCollective/ruleset.xml -v $FilePath$
,工作目录为$ProjectFileDir$
。 - 如果您不想在这里看到修复器的任何输出,请删除 "打开控制台"。
- 现在在设置 -> 快捷键映射(搜索 cs-sniffer 和 cs-fixer)下设置您的快捷键。例如,
Control + Comma
用于检查,Control + Dot
用于修复。
您还可以设置文件监视器,但在这里您最好只将某些仅添加内容而不删除内容的检查项列入白名单。
如何配置默认规则集
为了简化命令行界面,phpcs
允许通过以下方式指定 默认规则集 和 标准路径。
假设以下目录结构
vendor/php-collective/code-sniffer/ # Base directory
|_ PhpCollective/ # Rule set name
|_ ruleset.xml # Rule set
现在可以使用基本目录和规则集进行配置。
vendor/bin/phpcs --config-set installed_paths vendor/php-collective/code-sniffer/
vendor/bin/phpcs --config-set default_standard PhpCollective
您可能需要指定完整的目录路径。现在工具可以在不使用 --standard
开关的情况下使用。
请确保您将 PhpCollective 核心标准规则集包含在您的自定义规则集中,例如。
<?xml version="1.0"?> <ruleset name="PhpCollectiveProject"> <description> PhpCollective Coding Standard for Project. Extends main PhpCollective Coding Standard. All sniffs in ./Sniffs/ will be auto loaded </description> <rule ref="vendor/php-collective/code-sniffer/PhpCollective/ruleset.xml"/> <!-- Define your own sniffs here --> </ruleset>
如果您想在项目中使用 PhpCollectiveStrict
标准的话,应该将以下字符串
<rule ref="vendor/php-collective/code-sniffer/PhpCollective/ruleset.xml"/>
替换为这个
<rule ref="vendor/php-collective/code-sniffer/PhpCollectiveStrict/ruleset.xml"/>