PHP コード (つまり、すべてのワードプレスまたはテーマのテーマ) を分析し、すべての接続のきれいな写真 (おそらくブロック図) を表示して、物事がどこにあり、何が何に接続されているかをより迅速に理解するのに役立つソフトウェアを探しています。 .
理想的には、このソフトウェアは Mac で動作しますが、Windows、Linux、Web ベースなど、何でも構いません。
PHP コード (つまり、すべてのワードプレスまたはテーマのテーマ) を分析し、すべての接続のきれいな写真 (おそらくブロック図) を表示して、物事がどこにあり、何が何に接続されているかをより迅速に理解するのに役立つソフトウェアを探しています。 .
理想的には、このソフトウェアは Mac で動作しますが、Windows、Linux、Web ベースなど、何でも構いません。
[更新: この回答は名前空間を処理しないため、基本的に廃止されています。誰かが DOT アプローチに興味を持った場合に備えて、ここに残しておきます。]
PHP でクラスの継承をグラフ化する簡単な方法を次に示します。
クラス定義を grep してから、grep の出力を DOT 構文に変換します。注: このプロセスには、状況に応じた試行錯誤が必要です。grep を個別に実行し、適切なクラス定義行を表示するように微調整してから、スクリプトに追加してください。
このスクリプトは、標準の *nix (私は Ubuntu を使用) 上の PHP 用で、graphviz がインストールされていて、grep -v を使用して、CakePHP コードベースを見ていたため、関心のないいくつかのディレクトリを除外しました。この状況では、Fdp は sfdp、dot、circo、neato よりもうまく機能しました。
generateClassHierarchy.sh を作成します
#!/bin/bash
echo 'digraph code {' > code.dot;
grep -r "^class " * | grep -v "^app/vendors" | grep -v "^cake/" | grep -v "Binary file" | sed 's/.*://' | sed 's/class / /' | sed 's/ extends / -> /' | sed 's/ implements .*//' | sed 's/ \?{.*$//' | sort >> code.dot
echo '}' >> code.dot;
fdp -Tpng -ocode.fdp.png code.dot 2> /dev/null # Ignore syntax error
echo "OK";
それからちょうど:
cd /var/www/my_app/ # or wherever
bash ~/shell/generateClassHierarchy.sh # or wherever
eog code.fdp.png
eog を好みの画像ビューアに置き換えます。テストとして Zend Framework でこれを実行し、22 メガバイトの PNG グラフを生成しました。Zend_Db だけで実行すると、次のようになります (例は私のサイトにあります)。
http://chapman.id.au/generate-php-class-inheritance-diagrams-in-graphviz
静的分析についてはhttp://phpcallgraph.sourceforge.net/かもしれません。
さまざまなフォーマットで出力できます。
BOUMLは、既存の PHP コードから UML ダイアグラムを作成できます