27

PHP コードの呼び出しグラフを生成する gprof に似たユーティリティを探しています。グラフィカルな出力、または少なくとも GraphViz などで解釈できるテキスト出力を生成できるものが望ましいですが、プレーン テキスト出力で解決します。

これを行うことができるツールを知っている人はいますか?

4

5 に答える 5

34

私は間違いなくDoxygenを試してみます。それは PHP をサポートしており、それが作成する呼び出しグラフと呼び出し元グラフは、以前私にとって「外部コード」を調査するのに非常に役立ちました。

doxygen 呼び出しグラフの例

于 2009-08-05T20:24:13.960 に答える
3

PHP で記述されたソースコードを分析してそれを生成できるものが存在するかどうかはわかりませんが、コードを実行しているときに可能性はあります。

Xdebugエクステンションを見てみるとよいでしょう: これは PHP にプロファイリングをもたらし、Linux 上のKCacheGrindで読み取ることができる callgrind のようなファイルを生成します。

そして、これはある種のコールグラフを生成することができます。


また、単体テストの実行時に コード カバレッジを生成するために、PHPUNit と統合することもでき
ます。しかし、私はもうそのオプションを見つけられません:-(


編集:初めて聞いたのですが、phpCallGraphというプロジェクトがあり、あなたにも役立つかもしれません...そして、変更ログを見ると、作業が進行しているようです

于 2009-08-05T20:24:19.997 に答える
2

これは古いトピックですが、誰かが役に立つと思う場合に備えて....

  • kKCachegrind は、実際の実行スレッドを示すコールグラフを生成します。

  • PHPCallGraphはかなり単純なグラフビズであり、静的分析を実行します

  • PHPCallGraph に似ていますが、ループ/条件付き構造に関する情報を追加し、コールバックをノードに追加する方法を提供する私自身の取り組みもあります。一部のサンプル スクリプトはツールキットにバンドルされていますが、独自のスクリプトに埋め込むこともできます。

于 2011-02-05T01:04:01.760 に答える
2

すでに述べたように、Doxygen はコール グラフを生成できます。

Xdebug は関数トレースを生成できます。これらはランタイム コードから生成されるという点で doxygen のグラフとは異なりますが、doxygen は静的に生成されます。関数トレースを視覚的表現に変換できるツールは知りませんが、それほど難しくはないはずです。

php ソースコードが生成するバイトコードを表示することが主な機能であるbytekit拡張機能もあります。これをグラフで表示できます。これは本質的にコールグラフです。

于 2009-08-05T20:57:59.867 に答える
1

インタラクティブなものが必要な場合は、PHP用の新しいnWireをチェックしてください。これは、PDT2.1とZendStudio7.0のいずれかで動作するEclipseプラグインです。

于 2009-08-06T04:19:55.613 に答える