gpt4 book ai didi

codesniffer - PhpCS 排除嗅探不起作用

转载 作者:行者123 更新时间:2023-12-01 12:25:21 27 4
gpt4 key购买 nike

我在我的机器上运行 Php 7.0,但我需要检查在 7.05.6 中执行的代码。因此,我得到了

Squiz.Commenting.FunctionComment.ScalarTypeHintMissing

使用 -s 标志时出错。

我已经通过 composer 为一个安装了 2.6 的项目安装了 PhpCS。因为我想为许多项目使用 --exclude 标志,所以我通过 composer 在全局安装了 2.7

我正在尝试使用新的 --exclude 标志,但我总是遇到问题。首先我尝试了

phpcs -n --standard=phpcsdocblocks.xml --exclude=Squiz.Commenting.FunctionComment.ScalarTypeHintMissing src/

但它提示嗅探不存在,所以我删除了 Squiz 前缀,phpcs 运行了,但忽略了标志。我已经尝试了很多次嗅探,但没有任何异常(exception)。

我还尝试了 --sniffs 标志,但再次忽略了嗅探。我不明白我忽略了什么。

我需要通过 CLI 忽略这些嗅探。

作为引用,phpcsdocblocks.xml 包含

<?xml version="1.0"?>
<ruleset name="MyStandard">
<description>My custom coding standard.</description>
<rule ref="Squiz.Commenting.FunctionComment" />
<rule ref="Squiz.Commenting.FunctionCommentThrowTag" />
<rule ref="Squiz.Commenting.VariableComment" />
</ruleset>

编辑:如果有人能告诉我在 ubuntu 上哪里可以找到 phpcs 全局配置文件,加分

最佳答案

你不能像这样排除一条消息——你需要在使用命令行时排除整个嗅探。所以你需要做一些类似--exclude=Squiz.Commenting.FunctionComment的事情。

但这可能不是您想要的,因为它排除了来自该嗅探的所有消息。因此您需要忽略 ruleset.xml 文件中的这条特定消息,可能有不同的文件用于 php5 和 php7 测试。我想 PHP5 会只包含 PHP7,然后排除特定消息。

类似 phpcsdocblocks56.xml 的东西:

<?xml version="1.0"?>
<ruleset name="Custom Standard">
<rule ref="./phpcsdocblocks.xml" />
<rule ref="Squiz.Commenting.FunctionComment.ScalarTypeHintMissing">
<severity>0</severity>
</rule>
</ruleset>

或者这可能更干净:

<?xml version="1.0"?>
<ruleset name="Custom Standard">
<rule ref="./phpcsdocblocks.xml">
<exclude name="Squiz.Commenting.FunctionComment.ScalarTypeHintMissing"/>
</rule>
</ruleset>

如果您可以在您的机器上运行 PHP 5.6 和 PHP7,您也可以使用 PHP 5.6 运行 PHPCS,它会自动隐藏这些消息,因为它知道 PHP 版本不支持它们。

关于codesniffer - PhpCS 排除嗅探不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40467940/

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