spryker / code-sniffer
Spryker 代码嗅探器标准
Requires
- php: >=8.1
- slevomat/coding-standard: ^7.2.0 || ^8.0.1
- squizlabs/php_codesniffer: ^3.6.2
Requires (Dev)
- phpstan/phpstan: ^1.0.0
- phpunit/phpunit: ^9.5
- dev-master
- 0.17.25
- 0.17.24
- 0.17.23
- 0.17.22
- 0.17.21
- 0.17.20
- 0.17.19
- 0.17.18
- 0.17.17
- 0.17.16
- 0.17.15
- 0.17.14
- 0.17.13
- 0.17.12
- 0.17.11
- 0.17.10
- 0.17.9
- 0.17.8
- 0.17.7
- 0.17.6
- 0.17.5
- 0.17.4
- 0.17.3
- 0.17.2
- 0.17.1
- 0.17.0
- 0.16.6
- 0.16.5
- 0.16.4
- 0.16.3
- 0.16.2
- 0.16.1
- 0.16.0
- 0.15.9
- 0.15.8
- 0.15.7
- 0.15.6
- 0.15.5
- 0.15.4
- 0.15.3
- 0.15.2
- 0.15.1
- 0.15.0
- 0.14.12
- 0.14.11
- 0.14.10
- 0.14.9
- 0.14.8
- 0.14.7
- 0.14.6
- 0.14.5
- 0.14.4
- 0.14.3
- 0.14.2
- 0.14.1
- 0.14.0
- 0.13.1
- 0.13.0
- 0.12.5
- 0.12.4
- 0.12.3
- 0.12.2
- 0.12.1
- 0.12.0
- 0.11.4
- 0.11.3
- 0.11.2
- 0.11.1
- 0.11.0
- 0.10.4
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10.0
- 0.9.5
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.11
- 0.6.10
- 0.6.9
- 0.6.8
- 0.6.7
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.2
- 0.5.1
- 0.5
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.1
- 0.3
- 0.2
- 0.1
- dev-feature/frw-8801/master-php-upgrade-and-drop-81
- dev-strict-call
- dev-uselessparentheses
This package is auto-updated.
Last update: 2024-09-20 09:36:36 UTC
README
此嗅探器包完全遵循 PSR-2 并附带大量附加修复程序(包括 PSR-12)。请参阅 Spryker 编码规范以获取详细信息。
文档
见 docs.
上游文档: squizlabs/PHP_CodeSniffer/wiki
用法
如何在 Spryker 项目中使用
确保您将嗅探器作为 require-dev
依赖项包含
composer require --dev spryker/code-sniffer
开发模块提供了一个便捷命令
console code:sniff:style
(或 console c:s:s
作为快捷方式)
要自动修复可修复的错误,请使用
console code:sniff:style -f
-v
对于输出更多信息很有用。要运行特定的嗅探,请使用 -s
选项。见 -h
以获取帮助。
您还可以嗅探特定项目级别的模块或路径
console code:sniff:style [-m ModuleName] [optional-sub-path] -v
在任何项目中使用的方法
您还可以手动调用 phpcs/phpcbf 命令
vendor/bin/phpcs --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml ./
vendor/bin/phpcbf --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml ./
phpcs
只进行嗅探,phpcbf
进行修复。
您可能想要忽略某些文件夹,例如 --ignore=vendor/
或您的测试用例文件夹中的某些文件夹。
标准
您始终可以将标准切换到名为 SprykerStrict
的更严格的标准。它是 Spryker
标准的扩展,在其上方添加了自己的(严格)嗅探器。
如何在 IDE 中包含
例如,对于 PHPStorm
- 打开设置 -> 工具 -> 外部工具
- 添加一个名为 "cs-sniffer" 的新工具,并将程序设置为
$ProjectFileDir$/vendor/bin/phpcs
,参数设置为--standard=$ProjectFileDir$/vendor/spryker/code-sniffer/Spryker/ruleset.xml -p $FilePath$
,工作目录设置为$ProjectFileDir$
。 - 添加一个名为 "cs-fixer" 的新工具,并将程序设置为
$ProjectFileDir$/vendor/bin/phpcbf
,参数设置为--standard=$ProjectFileDir$/vendor/spryker/code-sniffer/Spryker/ruleset.xml -v $FilePath$
,工作目录设置为$ProjectFileDir$
。 - 如果您不希望在修复程序中看到任何输出,请删除 "打开控制台"。
- 现在在设置 -> 快捷键(搜索 cs-sniffer 和 cs-fixer)下设置您的热键。例如,
Control + Comma
用于嗅探,Control + Dot
用于修复。
您还可以设置文件监视器,但在这里您最好只将某些仅添加内容而不删除内容的嗅探器列入白名单。
如何配置默认规则集
为了简化命令行界面,phpcs
允许您通过以下方式指定 默认规则集 和 标准路径。
假设以下目录结构
vendor/spryker/code-sniffer/ # Base directory
|_ Spryker/ # Rule set name
|_ ruleset.xml # Rule set
现在可以使用基本目录和规则集进行配置。
vendor/bin/phpcs --config-set installed_paths vendor/spryker/code-sniffer/
vendor/bin/phpcs --config-set default_standard Spryker
您可能需要指定完整的目录路径。现在工具可以在不使用 --standard
开关的情况下使用。
使用自己的项目标准
您可以通过提供自己的 ruleset.xml 来交换或扩展 Spryker 编码标准。这可以在开发模块配置中进行配置
// DevelopmentConfig.php /** * Either a relative or full path to the ruleset.xml or a name of an installed * standard (see `phpcs -i` for a list of available ones). * * @return string */ public function getCodingStandard() { return '/path/to/your/ruleset.xml'; }
如果您用于自定义项目,只需使用 --standard
将其指向您的规则集文件。
请确保您的自定义规则集中包含 Spryker 核心标准规则集,例如。
<?xml version="1.0"?> <ruleset name="SprykerProject"> <description> Spryker Coding Standard for Project. Extends main Spryker Coding Standard. All sniffs in ./Sniffs/ will be auto loaded </description> <rule ref="vendor/spryker/code-sniffer/Spryker/ruleset.xml"/> <exclude-pattern>*/src/Generated/*</exclude-pattern> <exclude-pattern>*/src/Orm/*</exclude-pattern> <exclude-pattern>*/tests/_support/_generated/*</exclude-pattern> <exclude-pattern>*/tests/_helpers/*</exclude-pattern> <exclude-pattern>*/tests/_output/*</exclude-pattern> <exclude-pattern>./data/DE/*</exclude-pattern> <!-- Define your own sniffs here --> </ruleset>
如果您想在项目中使用 SprykerStrict
标准,应替换以下字符串
<rule ref="vendor/spryker/code-sniffer/Spryker/ruleset.xml"/>
为这个字符串
<rule ref="vendor/spryker/code-sniffer/SprykerStrict/ruleset.xml"/>