2011-08-13 62 views
7

我正在使用密码工具模块,其中一部分使用base64编码/解码。因此,我有很多变量,包括术语'base64',原因很明显。问题是,当我运行PHP_CodeSniffer工具时,它会抛出警告:“Variable”... 64“包含数字,但不鼓励”使用PHP_CodeSniffer忽略特定警告

有什么办法告诉PHP_CodeSniffer忽略这个特定文件的警告吗?我敢肯定,有一个很好的理由,以避免数字,但在这种情况下,我宁愿使用“的base64”“baseSixtyFour” ...

这是怎么了,我跑PHP_CodeSniffer:

[email protected]:~/workspace/library$ phpcs --standard=ZEND ./Tools/ 

FILE: /home/valorin/workspace/library/Tools/Password.php 
-------------------------------------------------------------------------------- 
FOUND 0 ERROR(S) AND 6 WARNING(S) AFFECTING 5 LINE(S) 
-------------------------------------------------------------------------------- 
    38 | WARNING | Variable "_bEncryptionBase64" contains numbers but this is 
    |   | discouraged 
    94 | WARNING | Variable "_bEncryptionBase64" contains numbers but this is 
    |   | discouraged 
    94 | WARNING | Variable "base64" contains numbers but this is discouraged 
    95 | WARNING | Variable "base64" contains numbers but this is discouraged 
210 | WARNING | Variable "bEncryptionBase64" contains numbers but this is 
    |   | discouraged 
251 | WARNING | Variable "bEncryptionBase64" contains numbers but this is 
    |   | discouraged 
-------------------------------------------------------------------------------- 

Time: 1 second, Memory: 7.50Mb 

回答

4

使用抑制注释标签:

// @codingStandardsIgnoreStart 

/* put your bad code here! */  

// @codingStandardsIgnoreEnd 

这需要1.2或更高版本。

+4

问题是,我需要把它们放在变量的每一次使用(这是频繁的),所以这是一个非常混乱的解决方案... –

4

在CodeSniffer 1.3版中,您可以在ruleset.xml文件的级别上使用exclude specific sniffs from specific files

+0

更好的解决方案,因为你不会污染你的源代码嗅探指令。您可能确实指定了单个错误消息。 –

+0

是的,但是如何找出单个错误消息的名称?我甚至看过其中一个,想不出来。 (ScopeClosingBraceSniff.php) –

+0

@AmigableClarkKant - 我没有实际使用特定的消息排除逻辑(我只在sniff级别排除),但看着ScopeClosingBraceSniff.php我看到以下几行:$ phpcsFile-> addError( $ error,$ scopeEnd,'ContentBefore');和$ phpcsFile-> addError($ error,$ scopeEnd,'Indent',$ data);,我想会通过ref =“Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore”和ref =“Squiz.WhiteSpace.ScopeClosingBrace .Indent“,分别。 – Peter