2016-11-07 69 views
1

我在我的机器上运行Php 7.0,但我需要检查在7.05.6中执行的代码。因此,我得到的PhpCS排除嗅探不工作

使用-s标志时Squiz.Commenting.FunctionComment.ScalarTypeHintMissing

错误的负载。

我已经安装PhpCS通过作曲家安装2.6的项目。正如我想要使用--exclude标志为许多项目,我通过作曲家全球安装2.7

我想使用新的--exclude标志,但我不断收到问题。首先我想

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

但抱怨了呼吸是不存在的,所以我放弃了Squiz前缀和phpcs跑,而忽视了标志。我尝试了一些嗅探,但没有排除任何东西。

我也尝试了--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> 

编辑:如果奖励积分谁能告诉我在哪里可以找到phpcs在Ubuntu全局配置文件

回答

1

不能排除单一消息 - 你需要在使用命令行时排除整个嗅探。所以你需要做一些像--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如果你可以在你的机器的旁边PHP7上运行PHP 5.6,你也可以运行PHPCS 5.6,它会自动隐藏这些消息,因为它知道PHP的版本不支持它们。

+0

谢谢Greg,我会试试看。 – myol