114

PHPの既存のクラスに基づいてUML図を生成するにはどうすればよいですか?

4

11 に答える 11

43

pearから入手できる PHP UML ツールもあります。

PHP_UML:

  • バージョン 1.4 またはバージョン 2.1 で UML/XMI ファイルを生成できます (論理ビュー、コンポーネント ビュー、およびデプロイメント ビュー)
  • API ドキュメントを HTML 形式で生成できます
  • 特定の XMI ファイルから PHP コード (コード スケルトン) を生成できます
  • UML/XMI コンテンツをバージョン 1.4 からバージョン 2.1 に変換できます

次の方法でコマンドラインにインストールします。

$ pear install pear/php_uml

(以前はそう$ pear install pear/php_uml-alphaでしたが、パッケージは安定しました。)

xmi を生成します。

$ phpuml -o project.xmi

于 2009-02-26T17:24:01.323 に答える
19

PHP と UML を実行するために私が見つけた最高の (Windows) ソフトウェアはSparx Systems Enterprise Architectです。多数の機能に加えて、 PHPの次の機能をサポートしています。

  • オブジェクト指向 PHP を UML クラス図にリバース エンジニアリングする
  • UML クラス図から PHP クラス定義を生成する
  • UML クラスで行われた変更を、対応する PHP クラス定義に同期します。
  • PHP クラス定義で行われた変更を、対応する UML クラスに同期します。
  • UML シーケンス図を作成して、PHP クラスが使用するものとその使用方法を示します
  • PHP コードの詳細なドキュメントを標準の RTF および HTML 形式で作成する
  • モデルでコード エンジニアリングを実行して、ベースの PHP ページを生成します。

無料 ($199) ではありませんが、お金を払う価値は間違いなくあります。

于 2009-04-15T10:27:45.667 に答える
7

Autodiaはもう試しましたか?前回試したときは完璧ではありませんでしたが、十分でした。

于 2008-12-26T08:46:29.927 に答える
7

php2xmiもあります。少し手作業が必要ですが、すべてのクラスが生成されるため、Umbrelloのクラス図にドラッグするだけです。

それ以外の場合、リフレクションとグラフビズを使用して図を生成するのは非常に簡単です。ここにスニペットがあります。これを出発点として使用できます。

于 2008-12-27T16:46:35.883 に答える
7

これが私が行った方法です(手動で何も描画せずに、コードからPDF描画に直接):

  1. 「PHPコードのリバースエンジニアリング」[原文のまま]にBOUMLを使用して、クラスモデルを抽出します(BOUMLはUbuntuの「ユニバース」リポジトリから入手できます。私が試した他の多くのプログラムと比較して非常に高速であるため、このステップには BOUML を真剣にお勧めします。さらに、BOUMLはモデルを正しく抽出しているようです(BOUMLが抽出しようとしている部分についても)。
  2. BOUML を使用してモデルを XMI 1.4 ファイルとしてエクスポートする
  3. ArgoUMLを使用して上記の XMI ファイルをインポートします (このステップでは webstart バージョンを使用できます)。
  4. ArgoUML から XMI をエクスポートします (出力がどの XMI バージョン/バリアントかはわかりませんが、BOUML からの出力と同じ結果ではありません。argouml-graphviz は、BOUML から直接 XMI ファイルを処理できません)。
  5. argouml-graphvizを使用して、ArgoUML でエクスポートされた XMI ファイルをドット形式に変換します ( XSLT2 を使用しているため、動作させるには xsltproc の代わりにsaxonを使用する必要がある場合があります)。
  6. クラス図を表示するには、ドットfdp、またはsfdpを使用します。

fdp を使用して PDF ダイアグラムを出力するための適切なコマンド ラインの例を次に示します (argouml-graphviz XLST 処理によって生成されたドット ファイルが xmi-model.dot として保存されると仮定します)。

fdp -Tpdf -Gmaxiter=1000 -Gmindist=0.5 -Gpackmode=node \
  -Eweight=0.05 -Elen=1.0 -Eminlen=1.0 -Gsplines=true \
  -Goverlap=false xmi-model.dot -oxmi-model.pdf

別の方法として、「リバース エンジニアリング」の部分を実行するために、BOUML の代わりにPHP_UMLまたはphp2xmiを試すことができます。私はまだそれを試していません。

(私が「リバース エンジニアリング」という語句を使用しているのは、ソース コードからクラスおよびメソッド情報を抽出することを意味するときに、UML の人々がこれらの語を使用しているように思われるためです。個人的には、これらの語を、実行可能なバイナリ ファイルから情報を抽出する、または生でキャプチャしたものとして解釈します。配線データ)

(すべての描画をコンピュータで行うのではなく) 手でクラス図を描画したい場合は、描画に BOUML または ArgoUML を使用できます。その場合、BOUML を介して「リバース エンジニアリングされた」データを使用すると役立ちます。

于 2011-12-14T08:32:28.337 に答える
5

既存の PHP クラスから簡単に UML を生成したい場合は、PHPStorm 3.0 IDE を検討することをお勧めします。既存のコードを UML に複製するのに適しています。

PHP Storm 機能リストをご覧ください。

于 2011-12-14T18:20:58.837 に答える
1

Visual Paradigm for UML を使用できます。これは、誰かが試してみたい場合のオプションとして、最高の有料 (699 米ドル) の製品ではない可能性があります。PHP からクラス図を作成することも、その逆も可能で、PHP だけでなく、C#、C++、Ruby、Java、VB.NET、Python、Objective C、Perl など、選択できる言語がたくさんあります。トライアルで確認できます。

于 2011-02-07T08:11:13.950 に答える