回答:
pearから入手できるPHP UMLツールもあります。
PHP_UML:
コマンドラインで次のようにインストールします:
$ pear install pear/php_uml
(これは以前は問題ありません$ pear install pear/php_uml-alpha
でしたが、パッケージは安定しています。)
xmiを生成します。
$ phpuml -o project.xmi
pear install PHP_UML-1.6.1
(pear.php.net/package/PHP_UML/download/Allまたはpear.php.net/package/PHP_UMLを参照)
phUMLは、BSDライセンスの下でライセンスされた、PHPで記述された完全自動UMLクラスダイアグラムジェネレーターです。PHP5オブジェクト指向のソースコードを解析し、UML仕様に基づいてoo構造の適切な画像表現を作成できます。
./phuml -r /var/www/my_project -graphviz -createAssociations false -neato out.png
PHPとUMLを実行するために私が見つけた最高の(Windows)ソフトウェアはSparx Systems Enterprise Architectです。一連の機能に加えて、PHPでは以下をサポートしています。
無料(199ドル)ではありませんが、間違いなくその価値はあります。
これが私がそれをした方法です(何も手動で描画することなくコードからPDFの描画に直接):
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
別の方法として、あなたは試みることができるPHP_UMLまたはphp2xmi「リバースエンジニアリング」の部分を行うための代わりのBOUMLを。私はまだそれを試していません。
(「リバースエンジニアリング」という言葉を使用しています。UMLの人々は、ソースコードからクラスとメソッドの情報を抽出することを意味するときにこれらの単語を使用しているようです。個人的には、実行可能なバイナリファイルまたはキャプチャされた生のファイルから情報を抽出すると解釈します。ワイヤーデータ。)
(すべての描画にコンピューターを使用する代わりに)クラス図を手動で描画したい場合は、描画にBOUMLまたはArgoUMLのいずれかを使用できます。その場合、BOUMLを介して「リバースエンジニアリングされた」データを使用すると役立ちます。
既存のPHPクラスからUMLを簡単に生成したい場合は、PHPStorm 3.0 IDEを検討してください。既存のコードをUMLに複製するのに適しています。
見ていPHP嵐の機能リストを。
理論的には、PhpStormを使用して、UMLを使用してクラスを視覚化できます。生成は本当に素晴らしいものではありませんが、少なくとも、親、実装、定数、属性、メソッド、およびそれらの可視性を適切な方法でプレビューして、効果的にリファクタリングできます。
状況
既存のコンポーネント間の同僚とのコミュニケーションを視覚化したいと思います。
PHPStormを使用したプロセス
https://blog.jetbrains.com/phpstorm/2017/09/uml-diagrams-in-phpstorm-2017-2/
メリット
短所
結果
とにかく、苦痛な時間を費やした後、私は無関係なボックスを生成することができ、関係をリンクするために追加のプログラムを使用する必要がありました。すごく悪い。しかし、コードが変更されるとダイアグラムが自動的に更新されるため、適切に機能させると素晴らしい機能になると思います。
現時点では、UML図にPhpStormを使用しないでください。
正直なところ、何よりもまず、コードからUMLモデルを生成するのではなく、UMLモデルからコードを生成する必要があります;)。
まれな状況であっても、このリバースエンジニアリングを行う必要がある場合は、自動生成されたUMLの視覚的情報(=情報)が非常に低いため、通常は手動で行うか、少なくとも図を片付けることをお勧めします。ほとんどの場合価値。
ダイアグラムを生成する必要があるだけなら、なぜそれを正確に自問するのが良いでしょうか?対象となる視聴者は誰ですか?目標は何ですか?自動生成された図は何を提供する必要がありますか、どのコードは提供しませんか?
基本的に、私はその質問に対する回答を1つだけ受け入れます。大きすぎて理解できなくなっただけです。
これも、コーディングを開始するのではなく、最初にUMLから始める理由です;)これは分析と呼ばれ、衰退しつつあります。ビジネスの2人に1人は少し高すぎるため、本当に必要ではないと考えているからです。