9

私はパスワードツールモジュールに取り組んでおり、その一部はbase64エンコーディング/デコーディングを使用しています。その結果、明らかな理由で「base64」という用語を含む多くの変数があります。問題は、PHP_CodeSnifferツールを実行すると、「変数 "... 64"には数値が含まれていますが、これは推奨されていません」という警告がスローされることです。

この特定のファイルに対するこれらの警告を無視するようにPHP_CodeSnifferに指示する方法はありますか?数字を避けるのには十分な理由があると思いますが、この場合は「baseSixtyFour」ではなく「base64」を使用します...

これが私がPHP_CodeSnifferを実行している方法です:

valorin@gandalf:~/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

2 に答える 2

6

バージョン3.2.0より前では、PHP_CodeSnifferは、バージョン4.0で削除されるファイルからコードの一部を無視するために異なる構文を使用していました。

古い構文:

// @codingStandardsIgnoreStart

/* put your bad code here! */    

// @codingStandardsIgnoreEnd

これにはバージョン1.2以降が必要です。

新しい構文:

PHP_CodeSnifferは、ファイルの一部を無視し、1行を無視するためにコメントを使用// phpcs:disableしています。// phpcs:enable// phpcs:ignore

現在、特定のエラーメッセージコード、スニフ、スニフのカテゴリ、またはコーディング標準全体のみを無効または有効にすることもできます。コメントの後に指定する必要があります。必要に応じて、--セパレータを使用して、スニフが無効化および再度有効化される理由を説明するメモを追加できます。

<?php

/* Example: Ignoring parts of file for all sniffs */
$xmlPackage = new XMLPackage;
// phpcs:disable
$xmlPackage['error_code'] = get_default_error_code_value();
$xmlPackage->send();
// phpcs:enable

/* Example: Ignoring parts of file for only specific sniffs */
// phpcs:disable Generic.Commenting.Todo.Found
$xmlPackage = new XMLPackage;
$xmlPackage['error_code'] = get_default_error_code_value();
// TODO: Add an error message here.
$xmlPackage->send();
// phpcs:enable

/* Example: Ignoring next line */
// phpcs:ignore
$foo = [1,2,3];
bar($foo, false);

/* Example: Ignoring current line */
$foo = [1,2,3]; // phpcs:ignore
bar($foo, false);

/* Example: Ignoring one line for only specific sniffs */
// phpcs:ignore Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed
$foo = [1,2,3];
bar($foo, false);

/* Example: Optional note */ 
// phpcs:disable PEAR,Squiz.Arrays -- this isn't our code
$foo = [1,2,3];
bar($foo,true);
// phpcs:enable PEAR.Functions.FunctionCallSignature -- check function calls again
bar($foo,false);
// phpcs:enable -- this is out code again, so turn everything back on

詳細については、PHP_CodeSnifferのドキュメントを参照してください。

于 2011-08-13T04:54:38.613 に答える
4

CodeSnifferバージョン1.3では、ruleset.xmlファイルのレベルで特定のファイルから特定のスニフを除外できます。

于 2011-09-29T01:19:43.763 に答える