PHPのソースコードからクラス図を自動生成


PHUMLでPHPのクラス図を画像で作成する

PHPSTORMにはクラス図を作成してくれる機能がついているそうですがお家環境にはPHPSTORM入っていないのでクラス図を自動生成してくれるツールを探していてphumlというツールを発見しました。
環境はUbuntu18.04LTSです。

インストール

https://github.com/jakobwesthoff/phuml
からダウンロードして適当な場所に展開しましょう。
僕は~/.localにphumlとして展開しました。
これで実行できるようになりました。

$php ~/.local/phuml/src/app/phuml
phUML Version 0.2 (Jakob Westhoff <[email protected]>)
Usage: phuml [-h|-l] [OPTIONS] <DIRECTORY> <PROCESSOR> [PROCESSOR OPTIONS] ... <OUTFILE>

Commands:
    -h      Display this help text
    -l      List all available processors

Options: 
    -r      Scan given directorie recursively

Example:
    phuml -r ./ -graphviz -createAssociations false -neato out.png

    This example will scan the current directory recursively for php files.
    Send them to the "dot" processor which will process them with the option
    "createAssociations" set to false. After that it will be send to the neato
    processor and saved to the file out.png

僕は毎度入力するのしんどいのでシンボリックリンク貼っときました。

sudo ln -si ~/.local/phuml/src/app/phuml /usr/local/bin

あとは解析したいディレクトリに移動してサンプルにもある用に

phuml -r ./ -graphviz -createAssociations false -neato out.png

を実行して上げればOKです。
試しにlaravelのエコシステムの一つpassportのsrcディレクトリ内で実行してみました。

ちゃんと表示できました!