如何在 codesniffer 中查找和更改规则集?

How to find and alter rulesets in codesniffer?

我在预提交 git 挂钩中使用 codesniffer

phpcs --standard=PSR2,PSR1 src/

但是,我不喜欢带有标签的预期政策。我的问题是我没有找到定义规则集的 xml。当我尝试使用

查找可用标准时
phpcs -i

我得到 The installed coding standards are MySource, PEAR, PSR1, PSR12, PSR2, Squiz and Zend。所以,我认为我的光盘上一定有一个文件夹,其中包含定义这些标准的 xml 个文件?此外,MySource 似乎是一个我可以开始使用的模板,但是,我找到了这些文件中的 none 个。 Codesniffer 似乎安装在这里:c:\Users\*****\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\.

此外,我正在使用 PhpStorm 并配置了代码嗅探器的路径。 现在 IDE 充满了警告,但我不明白它的规则从何而来。配置设置为 "Local" ,我不知道在哪里可以找到实际配置。来自 VSCode 和 prettier + eslint 我希望在某个地方有一个配置,其中 IDE 和自动代码嗅探预提交都遵循相同的规则集。

我希望你能帮我解决这个问题。提前致谢。

您不应修改标准的包含 XML 文件。相反,您想定义自己的包含 PSR2 标准的 XML 文件,然后对其进行更改。

这是一个使用 PSR2 但需要制表符缩进而不是 space 缩进的示例: https://gist.github.com/gsherwood/9d22f634c57f990a7c64

使用说明包含在要点中,尽管您可以将此文件保存到项目的根目录中并将其命名为 phpcs.xml.phpcs.xml,PHPCS 会在您不这样做时自动找到它指定要使用的标准。

对于您的 IDE,指定 XML 文件的完整路径以使其使用自定义标准。或者查阅 IDE 插件(如果有的话)的文档,了解如何使用自定义规则集。