このSonarsourceプロジェクトは、Sonarqubeプラットフォームの拡張機能として使用されるPHP言語の静的コードアナライザーです。これにより、バグ、脆弱性、コードの臭いを見つけて修正するのに役立つことにより、安定した簡単にサポートされたクリーンコードを作成できます。
フィードバックを提供するには(機能をリクエストし、バグをレポートするなど)、Sonarsourceコミュニティフォーラムを使用します。言語(PHP!)、プラグインバージョン、Sonarqubeバージョンを指定することを忘れないでください。
プラグインの使用方法について質問がある場合(およびドキュメントは役に立たない)、コミュニティフォーラムを使用することもお勧めします。
新しい機能をリクエストするには、Sonarsourceコミュニティフォーラムで新しいスレッドを作成してください。自分で実装してコミュニティに送信する予定がある場合でも、まず新しいスレッドを開始して、フォローアップできることを確認してください。
寄付を送信するには、このリポジトリのプルリクエストを作成します。コードスタイルに従い、すべてのテストが合格していることを確認してください。
あなたがルールのアイデアを持っているが、誰もがそれを必要とするかどうかわからない場合、あなただけが利用できるカスタムルールを実装できます。
CheckContext APIインターフェイスに追加の新しいnewIssueエンドポイントが追加されましたPHPCustomRulesDefinitionが削除され、バージョン2.13(2018年3月)以来非難されましたParameterTree#type()は非推奨です。代わりにParameterTree#declaredType()を使用します。ReturnTypeClauseTree#type()非推奨です。代わりにReturnTypeClauseTree#declaredType()を使用してください。ClassPropertyDeclarationTree#typeAnnotation()非推奨です。代わりにClassPropertyDeclarationTree#declaredType()を使用します。CatchBlockTree#variable() NULLを返すことができます。FunctionCallTree#arguments()非推奨です。代わりにFunctionCallTree#callArguments()を使用します。AnonymousClassTree#arguments()非推奨です。代わりにAnonymousClassTree#callArguments()を使用します。CallArgumentTree 。このツリーは、現在議論として渡された表現を包みます。ThrowExpressionTree 。MatchExpressionTree 。ParameterTreeにはvisibility性があります。テストを実行するには、これらの指示に従います。
プラグインを構築してユニットテストを実行するには、プロジェクトのルートディレクトリからこのコマンドを実行します。
./gradlew build統合テストを実行するには、以下に示すようなプロパティファイルを作成し、その場所をORCHESTRATOR_CONFIG_URLという名前の環境変数に設定する必要があります。
# version of SonarQube server
sonar.runtimeVersion =9.9統合テストを実行する前に、サブモジュールがチェックアウトされていることを確認してください。
git submodule update --init「プラグインテスト」は、メトリック計算、カバレッジなどのプラグイン機能を検証する追加の統合テストです。
./gradlew its:plugin:integrationTest「ルーリングテスト」は、大きなコードベースの分析を開始し、レポートファイルのプラグインによって作成された問題を保存し、それらの結果を予想される問題のセット(JSONファイルとして保存)と比較する特別な統合テストです。与党テストを開始するには:
./gradlew its:ruling:integrationTestこのテストは、各ルールによって作成された問題を調べ、それらがあなたが期待していることを確認する機会を提供します。分析の最後にあるログに記載されているSonarqubeローカルURLをチェックすることにより、新しい/失われた問題を検査できます。すべてがあなたに良く見える場合は、にある実際の問題でファイルをコピーできます
sonar-php/its/ruling/target/actual/
予想される問題があるディレクトリに
sonar-php/its/ruling/src/test/resources/expected/
すべてのルールの説明を更新するには:
./gradlew ruleApiUpdateRSPECからのルールSXXXXの静的ファイルを取得するには:
./gradlew ruleApiGenerateRule -Prule=SXXXX特定のRSPECブランチでも同じ(デフォルトでmaster ):
./gradlew ruleApiGenerateRule -Prule=SXXXX -Pbranch=my-branchCopyright 2010-2024 Sonarsource。
2024年11月29日以降にリリースされたSonarqubeアナライザーは、以前のバージョンのパッチ修正を含む、SONARソース利用可能なライセンスバージョン1(SSALV1)で公開されています。
各ファイルに適用されるライセンスを指定する詳細については、個々のファイルを参照してください。 SSALV1の対象となるファイルは、ヘッダーに記録されます。