PHP_UML は、 リバースエンジニアリングやドキュメント作成のためのツールです。
PHP のファイルやディレクトリをパースし、 パースしたコードに対応する XMI ファイルを生成します。
XMI は OMG の標準規格で、 XML を用いてメタデータ情報を交換します。 一般的に、UML のモデルをやりとりするためのフォーマットとして用いられています。 UML を扱うソフトウェアの多くが、XML ファイルのインポートやエクスポートに対応しています。
PhpDocumentor と同様、
PHP_UML は PHP のクラスやインターフェイス、
プロパティそして関数をパースすることができます。
また、ドキュメントブロックのインラインコメントから @package
や @var
、@param
といった情報を取得します。
@param
および @var
からは、パラメータやプロパティの型についての情報を取得します。
@package
からは、パッケージの階層構造を取得します。
PHP コードのドキュメントをきちんと書けば書くほど、 より正確な XMI ファイルができあがるというわけです。
現時点では、UML/XMI の標準規格には 1.4 および 2.1 のふたつのバージョンがあります。 PHP_UML は、どちらのバージョンの XMI でも生成することができます。 しかし、使用する UML ツールによっては生成した XMI ファイルをうまく扱えない可能性があることに注意しましょう。 たとえば、UML artifact (ソースファイル) とそこで定義されている論理要素のリンクは UML バージョン 2 でしか扱えません。
単一のファイル test.php
のパースと XMI ファイルの生成
<?php
require_once 'PHP/UML.php';
$uml = new PHP_UML();
$uml->parseFile('test.php');
$uml->generateXMI(1); // UML のバージョン番号 (1 あるいは 2)
$uml->saveXMI('test.xmi');
?>
UML はオブジェクト指向の標準規格なので、 PHP_UML はグローバル関数やグローバル定数といった "手続き型" の要素は一切無視することに注意しましょう。