php-class-diagram でパッケージ関連図を出したい

PHPのソースコードからクラス図を生成するためのPlantUMLのクラス図スクリプトを出力する php-class-diagram についてです。

JIGチュートリアルのパッケージを定義してクラスを定義していくと、徐々にビジネスルール関連図が育っていくところを見て、設計と実装を同時に進めるということが快適だし、自然であると実感しました。

javaにはJIGがあって羨しい…

という思いから、最近の自分の主言語であるPHPでも似たような事をやってみたいと思ったのが、php-class-diagram を作り始めたきっかけです。そうゆう意味では、クラス図を作りたかった訳ではなく、JIGのビジネスルール関連図を作りたかったというのが正しいです。

php-class-diagram は、行き当たりばったりに進めつつ、プロトタイプレベルではクラス図は出せるようになったので、次はJIGのパッケージ関連図を出力できないか、ローカルブランチで検討してます。

基本的には、ビジネスルール関連図(クラス図)を出力するために収集した情報を使って、パッケージ関連図も出せるのではないかと思ってます。厳密にやろうとすると、ソースコード全体を辿って、外部のパッケージを参照してる箇所をリストアップしなければならないはずだけど、基本パッケージに含まれるPHPファイルに含まれる use ステートメントの情報だけを使って、パッケージ間の関連図を出してみようかと考えてます。

作ってみました。

php-class-diagramのパッケージ関連図を出力してみたところ、自分自身のパッケージに依存している矢印が表示されたということは、書く必要がないはずの同じnamespace階層のクラスをuseしている箇所がある。ということでした。

パッケージ関連図では、外部のnamespaceへの依存も表示するようにしたので、意図してないnamespaceから直接依存が発生していないことを可視化できます。この例で言えば、DiagramElement namespaceから、直接 PhpParserの機能を利用していないことがわかります。

パッケージ関連図は、なかなか便利に使えるのではないかな、と思います。

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.