2016-11-07 45 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