gpt4 book ai didi

PHPCS 嗅探名称似乎与 PHPCBF 修复不匹配

转载 作者:行者123 更新时间:2023-12-04 02:19:18 25 4
gpt4 key购买 nike

我在 phpcs.xml 中定义了一些嗅探,如下所示:

<rule ref="PSR2">
<exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed"/>
</rule>

我的意图是以细化的方式逐渐收紧 CS 规则(还有更多排除项)。

但是,当我尝试运行 CBF 时,它因相同的嗅探名称而失败:

$ ./vendor/bin/phpcbf --standard=PEAR --sniffs=Generic.Sniffs.ControlStructures.InlineControlStructure.NotAllowed path/to/code

制作:

ERROR: The specified sniff code "Generic.Sniffs.ControlStructures.InlineControlStructure.NotAllowed" is invalid

对phpcs有效怎么会无效呢?我似乎无法在文档中找到映射或命名约定映射。

(我尝试过使用“PEAR”、“PSR2”和“Generic”作为标准,我也尝试过将其作为 Generic.ControlStructures.InlineControlStructure.NotAllowed)

最佳答案

当您运行 PHPCBF 时,请使用与运行 PHPCS 时完全相同的参数运行它。 PHPCBF 将正常读取您的 ruleset.xml 文件并处理其中找到的所有规则。您排除的任何被报告为错误的内容也将被排除在修复之外。如果您设置了任何配置变量,它也会读取这些变量。 PHPCBF 和 PHPCS 共享相同的代码库。

您遇到的具体错误是 Generic.Sniffs.ControlStructures.InlineControlStructure.NotAllowed 不是嗅探名称。这是一个完整的错误代码。您不能在命令行中排除特定的错误代码。如果您改用 Generic.Sniffs.ControlStructures.InlineControlStructure,它会起作用,但它还会排除该嗅探中的所有错误,而不仅仅是您提供的特定消息。

因此,最好的办法是为 PHPCS 创建自定义编码标准,并确保报告所有要修复的错误,并隐藏要排除的错误。当您对结果感到满意时,只需将 phpcs 命令更改为 phpcbf 并让它运行。

如果您发现自己处于需要不同规则来检查和修复的情况,您可以标记 ruleset.xml 文件以告诉 PHPCS 和 PHPCBF 执行哪些规则:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml#selectively-applying-rules

关于PHPCS 嗅探名称似乎与 PHPCBF 修复不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32136566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com