みなさん、普通の人はUMLモデリングツールに何を使っているんでしょうか。 とくにPHPの人は・・・??? PHPに対応したツールってほとんど見当たらないので本当に謎です。マジで! 会社ではVisio2000に PHP データ型 とか勝手に作って書いてます。 開発標準化にあたってツール類も探しているんですが、フリーの(オープンソースでなくてもいい)UMLモデリングツールってなかなかコレ!ってのが無いです。PHPに関してはラウンドトリップなんかはあきらめてるんですが、QtベースのUmbrelloというオープンソースのUMLモデリングツールがPHPに対応しているというので試してみました。(これのためだけにsargeインストール・・・)
見ての通りUMLモデリングツールとしては普通っぽいUIなのでVisioからすんなり入れました。本気でこれに移行しようとかいうんじゃないんで「おー良くできとる」っていう感じです。
適当なクラス図を描いて早速、クラス図からソースを吐いてみました。(ソースからの読み込みはできないみたいです。)
request.php
/** * class Request * */ class Request { /** Aggregations: */ /** Compositions: */ /*** Attributes: ***/ /** * * * @param string name * @return string * @access public */ function get( $name ) { } // end of member function get /** * * * @param int name * @param int value * @return void * @access private */ function set( $name, $value ) { } // end of member function set } // end of Request ?>
view.php
/** * class View * */ class View extends Smarty { /** Aggregations: */ /** Compositions: */ /*** Attributes: ***/ /** * * * @return void * @access public */ function execute( ) { } // end of member function execute } // end of View ?>
おお、継承とかはちゃんとやってくれるみたいです。でもこのソースフォーマットって標準的じゃないっぽくない? 改めて考えてみるとラウンドトリップ機能ってコード書いてて途中でリファクタリングしてもクラス図やソースのメンテナンスが楽!っていうために使うんですな。吐いて終わりだと最初の一回だけだからあんまり嬉しくないかも・・・。