Scrutinizer-CI の静的解析関数を使用して、PHP コードに関するフィードバックを提供しています。彼らのドキュメントによると、プロジェクトのルートにファイルがあり、 Scrutinizer.scrutinizer.yml
のオプションを希望どおりに構成しているようです。ほとんど。
これらのオプションの 1 つが ですdependency_paths
。これにより、依存関係を含むパスを指定できます。Scrutinizerで連絡を取った人によると...
「依存関係にリストされているパスは、他のファイルの分析をより正確にするために定義されているクラスまたは関数を見つけるためにそれらを調べるという点で、完全に除外されたパスとは異なります。ただし、これらのファイルの問題を探すことはありません。」
残念ながら、それは私にはうまくいかないようです。認証に SAML を使用しているためsimplesamlphp
、ソース コードを含むフォルダーがあります。(使用方法に基づいていくつかの構成ファイルなどを編集する必要があるため、composer などを介して simplesamlphp を含めることはできません)。
私のファイルの関連部分は.scrutinizer.yml
次のようになります。
filter:
paths:
- application/*
tools:
php_analyzer:
dependency_paths:
- application/simplesamlphp/*
(application
フォルダーは、ソース コードのルート レベルのフォルダーです)。
これにより、フォルダーで見つかった問題が Scrutinizer のコードのスコアに影響するのを防ぐことができますsimplesamlphp
。ただし、Scrutinizer は、そのsimplesamlphp
フォルダーで見つかったコードに関する何千もの問題をまだ報告しており、実際に私が書いたコードに関する問題を見つけるのが難しくなっています。
dependency_paths
設定を間違って使用していませんか?確かに、言われたとおりに機能していないようです...私はかなり混乱しています。
編集:もう少し情報を提供するためにsimplesamlephp
、オプションを使用してフォルダーを完全に除外できexcluded_paths
ます。課題は、 (コードをよりよく理解するために) Scrutinizer が依存関係のクラスなどを調べられるようにすることですが、依存関係で見つかった問題を報告しないようにすることです。
編集 2:うーん、これは興味深いです。.scrutinizer.yml
ファイル(の関連部分) のいくつかのバージョンを試してみたところ、次の結果が得られました。
まず、Scrutinizer にsimplesamlphp
フォルダーを完全に除外するように指示しました。
filter:
paths:
- application/*
excluded_paths:
- application/simplesamlphp/*
tools:
php_analyzer:
dependency_paths:
- application/simplesamlphp/*
これにより、自分のコードの問題を確認して修正することができました。この時点で、私のプロジェクトの Scrutinizer でのスコアは 9.54 です。その後、除外をやめましたsimplesamlphp
:
filter:
paths:
- application/*
tools:
php_analyzer:
dependency_paths:
- application/simplesamlphp/*
この変更により、Scrutinizer の分析で 7756 の問題が発生しましたが、私のプロジェクトのスコアは 9.54 のままでした (つまり、問題はsimplesamlphp
報告されていましたが、私にはカウントされませんでした)。次に、パスから末尾のスラッシュとアスタリスクを削除しようとしました。
filter:
paths:
- application/*
tools:
php_analyzer:
dependency_paths:
- application/simplesamlphp
この変更により、2002 の問題が導入され、3198 の問題が修正されました。それらのすべて (導入された問題と修正された問題の両方) がsimplesamlphp
フォルダーに含まれています。これほどの効果は全く期待していませんでした。これにより、Scrutinizer での私のプロジェクトのスコアも 7.47 に下がりました。つまり、simplesamlphp
フォルダー内の問題が私に対してカウントされていることを意味します。次に、次の単一行配列構文に変更してみましたdependency_paths
。
filter:
paths:
- application/*
tools:
php_analyzer:
dependency_paths: [application/simplesamlphp]
これは効果がありませんでした。/*
完全を期すために、この配列構文に末尾を追加しました。
filter:
paths:
- application/*
tools:
php_analyzer:
dependency_paths: [application/simplesamlphp/*]
この結果には私も驚きました。この変更により 2002 年の問題が修正され、私のスコアは 9.54 に戻りました。修正された問題と残りの 4519 の問題の両方がすべてsimplesamlphp
フォルダーに含まれていました。これで目標に近づいたように見えますが、依然、コードの何千もの問題がdependency_pathsに残っています。simplesamlphp
この時点で他に何を試すべきかわからないので、おそらくフォルダーを完全に除外することに戻るでしょう。