問題のある可変使用の分析を追加するphp_codesniffer静的分析ツールのプラグイン。
VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable )unset()内で使用されている場合、警告します。 (スニフコード: VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedUnsetVariable )VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable )$this self::$static_member 、 static::$static_memberがクラスの範囲外で使用される場合は警告します。 (スニフコード: VariableAnalysis.CodeAnalysis.VariableAnalysis.SelfOutsideClassまたはVariableAnalysis.CodeAnalysis.VariableAnalysis.StaticOutsideClass ) Variableanalysisには、PHP 5.4以降およびPHP CodesNifferバージョン3.5.6以降が必要です。
これが最も簡単な方法です。
まず、プロジェクトにPHPCodesNiffer-Composer-Installerをインストールしていない場合は、インストールしてください。これにより、PHPCSもインストールされます。
composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
composer require --dev dealerdirect/phpcodesniffer-composer-installer
次に、これらの標準をインストールします。
composer require --dev sirbrillig/phpcs-variable-analysis
次に、次のような行をphpcs.xmlファイルに追加して、スニフを含めることができます。
<rule ref="VariableAnalysis"/>
その後は機能するはずです!
インストール手順(Composer、PhARファイル、ナシ、またはGITチェックアウトを介して)に従ってPHP_CodesNiffer(PHPCS)をインストールします。
php_codesnifferのバージョンが要件と一致することを確認してください。
variableanalysisをインストールします。 variableanalysisの最新リリースページからzipまたはtar.gzファイルのいずれかをダウンロードします。ファイルを展開し、結果のディレクトリをphpcs-variable-analysisに変更します。ディレクトリをすべてのPHPCS標準を維持したい場所に移動します。
新しくインストールされた標準のパスをPHP_CodesNifferにインストールされた_Paths構成に追加します。次のコマンドは、既存の標準に新しい標準を追加する必要があります(上記のディレクトリに実際のパスを必ず提供してください)。
phpcs --config-set installed_paths "$(phpcs --config-show|grep installed_paths|awk '{ print $2 }'),/path/to/phpcs-variable-analysis"
他の標準がインストールされていない場合は、これをより簡単に実行できます(繰り返しますが、実際のパスを必ず供給してください)。
phpcs --config-set installed_paths /path/to/phpcs-variable-analysis
variableanalysisの動作をカスタマイズするためのさまざまなオプションがあります。構成のコメントされた例については、付属のruleet.xml.exampleをご覧ください。
利用可能なオプションは次のとおりです。
allowUnusedFunctionParameters (bool、default false ):trueに設定されている場合、関数引数は未使用としてマークされることはありません。allowUnusedCaughtExceptions (bool、default true ):trueに設定されている場合、キャッチされた例外変数は未使用としてマークされることはありません。allowUnusedParametersBeforeUsed (bool、default true ):Trueに設定されている場合、使用されている関数引数が続くと、未使用の関数引数が無視されます。allowUnusedVariablesBeforeRequire (bool、default false ):trueに設定されている場合、 requireに応じて定義された変数、 require_once 、 include 、またはinclude_once未使用としてマークされません。それらは、必要なファイルを目的としている場合があります。allowUndefinedVariablesInFileScope (bool、default false ):ファイルのトップレベルスコープのtrueに設定されている場合、未定義としてマークされることはありません。これは、他の場所で定義されている多くのグローバル変数を使用するテンプレートファイルに役立ちます。allowUnusedVariablesInFileScope (bool、default false ):Trueに設定すると、ファイルのトップレベルスコープの未使用の変数が未使用としてマークされることはありません。これは、他の場所で使用される多くのグローバル変数を定義する場合に役立ちます。validUnusedVariableNames (string、default null ):未使用の変動警告から無視するプレースホルダー変数の名前のスペース分離リストのリスト。たとえば、変数$junkと$unused無視するために、これは'junk unused'に設定できます。ignoreUnusedRegexp (String、Default null ):未使用の変動警告から無視したい変数のPHP Regexp String(これには明示的なデリミターが必要であることに注意してください)。たとえば、変数$_junkと$_unused無視するために、これは'/^_/'に設定できます。validUndefinedVariableNames (string、default null ):未定義の変数警告から無視したいプレースホルダー変数の名前のスペース分離リスト。たとえば、変数$postと$undefined無視するために、これは「未定義」に'post undefined'に設定できます。これは、 validUndefinedVariableRegexpと組み合わせて使用できます。validUndefinedVariableRegexp (string、default null ):未定義の変数警告から無視したい変数のphp regexp string(これには明示的なデリミターが必要であることに注意してください)。たとえば、変数$postおよび$undefined無視するために、これは'/^(post|undefined)$/'に設定できます。これは、 validUndefinedVariableNamesと組み合わせて使用できます。allowUnusedForeachVariables (bool、default true ):trueに設定されている場合、 key => value foreachループの値構文は未使用とは決してマークされません。sitePassByRefFunctions (String、Default null ):参照( preg_match()など)で初期化される変数に渡されるカスタム関数のリスト。したがって、これらの変数を事前に定義する必要はありません。リストはスペース分離されており、各エントリはフォームfunctionName:1,2です。関数名の後には、コロンと、さまざまな定義と見なされる必要がある引数番号のコンマ区切りリスト(1から始まる)が続きます。特別な値...引数リストの最後の数字の後にすべての引数が可変定義と見なされます。allowWordPressPassByRefFunctions (bool、default false ):Trueに設定されている場合、一般的なWordPressパスバイレファレンス関数のリストがPHPのリストに追加され、これらの関数に未定義の変数を渡すことが許可されます。これらのオプションを設定するには、ルールセットでXMLを使用する必要があります。詳細については、PHPCSカスタマイズ可能なSniffプロパティページを参照してください。以下は、アンダースコアから始まるすべての変数を無視する例です。
< rule ref = " VariableAnalysis.CodeAnalysis.VariableAnalysis " >
< properties >
< property name = " ignoreUnusedRegexp " value = " /^_/ " />
</ properties >
</ rule >これは、https://github.com/illusori/php_codesniffer-variableanalysisの優れた作品からフォークされました
このリポジトリに問題またはPRSを開いてください。
変更にはテストを伴う必要があり、糸くずと静的分析に合格する必要があります。 PHP 5.4で実行する必要があるため、タイプを宣言するには、PHPDOC(実際のタイプではなく)を使用してください。
テストを実行するには、作曲家がインストールされていることを確認してから、次のことを実行してください。
composer install # you only need to do this once
composer test
糸くずを実行するには、使用してください。
composer lint
静的分析を実行するには、使用します。
composer phpstan