2013-04-16 14 views
34

私のTestMyClass.phpは、同じファイル(ユニットテストクラス)に2つのクラス定義があり、PHPコードスニファは約という文句を言います。各クラスはファイル自体にでなければなりません。どうすればこの警告を抑制できますか?コメントを使用してPHPCSの警告を抑制するにはどうすればよいですか?

class MyClassImpl implements MyInterface 
{ 
    // ... 
} 

class MyClassTest extends \PHPUnit_Framework_TestCase 
{ 
    // ... 
} 

答えて

64

あなたはPHP_CodeSnifferのコメントを使用して、ファイル内の特定のファイルや行を無視するように取得することができます。この場合https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-files-and-folders

を、エラーが2番目のクラス定義の上に生成されますので、あなたが書く必要があるだろうもしこのような2番目の定義:

// @codingStandardsIgnoreStart 
class MyClassTest extends \PHPUnit_Framework_TestCase 
{ 
    // @codingStandardsIgnoreEnd 
    // ... 
} 

しかし、あなたはまた、(参照のいずれかで、それをチェックすることが想定されていない場合は、単にファイル全体を無視することを選択し@codingStandardsIgnoreFileコメントを使用するか、コマンドラインで除外を指定することで可能性があります前のlインフォメーション用インキ)。

これを多く行い、コードにコメントを追加したくない場合は、独自のカスタムコーディング標準を作成することもできます。あなたが今PSR2標準を使用していると仮定すると、あなたはXMLファイル(例えば、mystandard.xml)を作成したいと、以下の内容が含まれます。

<?xml version="1.0"?> 
<ruleset name="MyStandard"> 
<description>My custom coding standard.</description> 
<rule ref="PSR2" /> 
<rule ref="PSR1.Classes.ClassDeclaration.MultipleClasses"> 
    <severity>0</severity> 
</rule> 
</ruleset> 

次に、このようPHP_CodeSnifferのを実行します。phpcs --standard=/path/to/mystandard.xml /path/to/code

があなたを持ちます独自のルールセットを使用すると、エラーメッセージの変更、メッセージの重大度やタイプの変更、他の標準からのチェックを含む、グローバル無視ルールの設定など、多くのことを行うことができます。詳細情報:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml

+0

+1テストファイルをスキップします。または、それらのために[PHPUnitStandard](https://github.com/elblinkin/PHPUnit-CodeSniffer)を使用することができます: – cmbuckley

+3

[documentation](https://github.com/squizlabs/PHP_CodeSniffer/wiki/ Advanced-Usage#ignoring-files-and-folders) '@codingStandardsIgnoreLine'コメントを使って1行を無視することもできます。このコメントは、コメントがある行と次の行を無視します。 – JSmitty

関連する問題