web-dev-qa-db-ja.com

コメントを使用してPHPCS警告を抑制するにはどうすればよいですか?

俺の TestMyClass.phpには同じファイル(ユニットテストクラス)に2つのクラス定義があり、PHP Code Snifferは各クラスは単独でファイルに存在する必要がありますについて文句を言います。この警告を抑制しますか?

class MyClassImpl implements MyInterface
{
    // ...
}

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

コメントを使用して、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コメントを使用するか、コマンドラインで除外を指定することで、チェックする必要がない場合はファイル全体を無視することもできます(情報については前のリンクを参照してください)。

これを頻繁に行い、コードにコメントを追加したくない場合は、独自のカスタムコーディング標準を作成することもできます。現在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

73
Greg Sherwood

@codingStandards構文は、バージョン3.2.0、代わりにphpcsを使用します。

いくつかの例:

// phpcs:disable
// phpcs:ignore
// phpcs:enable

詳細については、このページを参照してください: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-parts-of-a-file

8
Will