6

問題

依存関係を分析して判断する必要がある従来のコードベースがあります。特に、クラス (内部/外部) と拡張機能 (Memcache、PDO など) への依存関係。

私が試したこと

「 PHP ファイル用の静的コード アナライザーはありますか?」に記載されているツールを確認しました。. 残念ながら、この投稿は古く、phpCallGraphなどの有望なツールのほとんどは機能しなくなりました。

私の考えは、コードを語彙的に分析し、クラストークンを探すことでした。これらのリストを確認することで、少なくとも依存関係を視覚的に判断できるようになります。ただし、次のコードでOtherClassを見つけるのは複雑な場合があります。

$classname = 'OtherClass';
echo $classname::doubleColon();

結局のところ、これが必要になったのは私が初めてではないでしょうか。必要なものを提供するためのツールまたはツールの組み合わせが存在すると確信しています。だから私はこれを自分で書く前にSOコミュニティに尋ねています.

アップデート

理想的には、このツールは完全なコード カバレッジで複数のファイルを分析します。そのため、Xdebug のようなツールは優れていますが、この正確な問題の解決策にはなりません。

4

2 に答える 2

3

phpCallGraph の代わりに、Gopal Vijayaraghavan のinclued 拡張機能を使用できます。Graphviz と組み合わせること、特定の実行パスに含まれるすべてのファイルの見栄えの良いグラフが得られます。

例:

ここに画像の説明を入力

さらに、Valgrindによって消費されるデータを出力するプロファイラーを提供するXdebug (PHP デバッガー) をお勧めします。互換性のある IDE でデバッガーを使用して、実行パスをたどります (これは、たとえば Drupal の膨大な呼び出しスタックを通り抜けるのに大いに役立ちました)。

両方を組み合わせると、かなり完全な概要が得られるはずです。

編集

Web を検索したところ、nWire for PHPが見つかりました。これは、適切なツールのように見える Eclipse プラグインです (30 日間の無料試用版で、有利なスタートを切るのに十分なはずです)。

于 2012-10-26T14:28:24.727 に答える
0

PhpCodeAnalyzer はまさにあなたが探しているものだと思います - https://github.com/wapmorgan/PhpCodeAnalyzer コードベースで使用されているすべての外部拡張機能のリストを出力します。

于 2015-08-28T20:53:39.430 に答える