3

次のように、phpcs.xml でいくつかのスニフが定義されています。

<rule ref="PSR2">
    <exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed"/>
</rule>

私の意図は、CS ルールを段階的に強化することです (さらに多くの除外があります)。

ただし、CBF を実行しようとすると、同じスニフ名で失敗します。

$ ./vendor/bin/phpcbf --standard=PEAR --sniffs=Generic.Sniffs.ControlStructures.InlineControlStructure.NotAllowed path/to/code

生産:

エラー: 指定されたスニフ コード "Generic.Sniffs.ControlStructures.InlineControlStructure.NotAllowed" は無効です

phpcsで機能する場合、どのように無効になりますか? ドキュメントでマッピングまたは命名規則のマッピングが見つからないようです。

(「PEAR」、「PSR2」、「Generic」を標準として試しましたが、Generic.ControlStructures.InlineControlStructure.NotAllowed と同じように試しました)

4

2 に答える 2

2

PHPCBF を実行するときは、PHPCS の場合とまったく同じ引数で実行してください。PHPCBF は通常どおり ruleset.xml ファイルを読み取り、その中にあるすべてのルールを処理します。エラーとして報告されないように除外したものは、修正の対象からも除外されます。構成変数が設定されている場合は、それらも読み取ります。PHPCBF と PHPCS は同じコードベースを共有しています。

あなたが持っている特定のエラーは、それGeneric.Sniffs.ControlStructures.InlineControlStructure.NotAllowedがスニフ名ではないということです。完全なエラーコードです。コマンド ラインで特定のエラー コードを除外することはできません。代わりに使用Generic.Sniffs.ControlStructures.InlineControlStructureすると機能しますが、指定した特定のメッセージだけでなく、そのスニフのすべてのエラーも除外されます。

したがって、最善の方法は、PHPCS 用のカスタム コーディング標準を作成し、修正したいすべてのエラーが報告され、除外したいエラーが隠されていることを確認することです。その結果に満足したら、phpcsコマンドを に変更しphpcbfて実行します。

チェックと修正に別のルールが必要な状況に陥った場合は、ruleset.xml ファイルをマークアップして、強制するルールを PHPCS と PHPCBF に指示できます: https://github.com/squizlabs/PHP_CodeSniffer/wiki /Annotated-ruleset.xml#selectively-applying-rules

于 2015-08-22T10:28:25.093 に答える
2

標準が次の方法で登録されていることを確認します。

phpcs -i

それ以外の場合は、次の方法で追加します。

phpcs --config-set installed_paths path/to/coder_sniffer/standards

登録すると、次の方法ですべてのスニフを一覧表示できます。

phpcs -e --standard=PEAR

私のphpcsこのスニフは次のように呼ばれます: Generic.ControlStructures.InlineControlStructure.

$ phpcs -e --standard=PEAR | grep ControlStructures.InlineControlStructure
  Generic.ControlStructures.InlineControlStructure
于 2018-03-26T11:12:05.670 に答える