🚀PHPのソースコードからPlantUMLのクラス図を出力するツール php-class-diagram v1.0.0 をリリースしました🎉
PHPのソースコードからPlantUMLのクラス図を出力するツール php-class-diagram v1.0.0 をリリースしました。
first commit は、2021年11月1日でした。1年5ヶ月かかって、バージョン1.0.0に辿りついたことになります。ちょっと感想文を。
開発動機
設計についてのオンライン勉強会で、『現場で役立つシステム設計の原則』の著者の増田さんが、早めにコードで表現して、JIG というツールで可視化をすることで設計を行なうという話をしていて、JIG というツールがあることを知りました。
以下は、JIGの作者であるirofさんのスライドです。
このコードをどまんなかに据えるという考え方を支えるのはJIGというコードから設計を可視化するツールなのだというのがわかりました。自分は現在PHPのプロジェクトを担当してるので、JIGのあるjavaが羨ましく感じました。
PHPにもJIGが欲しい
PHPにもJIGがあれば、このコードをどまんなかに据える設計アプローチが実践できるのだろうけど、それらしい既存ツールは見当らなかったので、『コードをどまんなかに据える設計アプローチ』をPHPで実践するためのツールを自分で作ってみることにしました。
PHP版JIG としての php-class-diagram の構成
PHPのソースコードの解析は、php-parserというライブラリを使っています。図の生成には、非常に優れた柔軟性のあるPlantUMLを使うことにしました。この2つが素晴しいので、php-class-diagram は、JIG のように現在の設計に気付きを与える図を出力することに集中できたのではないかと思ってます。
JIGで出力できるものを全て出力できるようになった訳ではないですが、以下の図については対応する図を生成できるようになりました。
- ビジネスルール関連図
- パッケージ関連図
- 区分図
参考 JIGチュートリアル
php-class-diagram という名前
php-class-diagramという名前は、PHP版 JIG を目指していた本心の割にクラス図出力専用と取られかねない名前ですが、より多くの人の目には留まりやすいのではないかと思い、愚直な名前にしました。
『コードをどまんなかに据える設計アプローチ』の実践
php-class-diagramを使って、PHPで『コードをどまんなかに据える設計アプローチ』を実践してみてください。コマンドラインツールなので、CIに組込むことも可能だと思いますので、試してみて下さい。
P.S.
IssueやPull Requestなどwelcomeです。