plantuml-encodingを使ってPHPでPlantUmlする
概要
PHP で API クライアントを実装する を参考に、plantuml-encodingを使用してPlantUMLのコードを圧縮文字列にする変換をPHPで行う。
最終目的: PlantUMLのコードをテキストとして実データで保持しつつ(git管理しつつ)、図は自動で更新され、かつ閲覧のみならば簡単に行える環境を探す
try
環境
PHP実行できる環境。
今回はdocker-composeで用意。
project/
├ docker-compose.yml
├ docker(dockerfileなど入ってる)
├ public/
└ index.php/
jawira/plantuml-encoding
composerで入れる
$ composer require jawira/plantuml-encoding
とりあえず実行してみます
参考のサンプルコードを少し変えてみました。
<?php
require '../vendor/autoload.php';
use function Jawira\PlantUml\encodep;
$encode = encodep('
Alice -> Bob: hello
');
$svg = file_get_contents("http://www.plantuml.com/plantuml/svg/{$encode}");
echo $svg
encodep()
関数でエンコードを行います。
生成した圧縮文字を用いてPlantUML Serverからsvgを取得し、それをそのまま画面に出します。
PlantUmlを別ファイルに記述する
@startuml
Alice -> Bob: hello
@enduml
<?php
require '../vendor/autoload.php';
use function Jawira\PlantUml\encodep;
$uml = file_get_contents('../umls/test.puml');
$uml = str_replace('@startuml', '', $uml);
$uml = str_replace('@enduml', '', $uml);
$encode = encodep($uml);
$svg = file_get_contents("http://www.plantuml.com/plantuml/svg/{$encode}");
echo $svg;
別のファイルにUMLを記述して読み込みます。
エディタのパッケージで開発中にプレビューを行うには@startuml
と@enduml
の記述が必要なのですが、エンコード時には取り除きます。
おわり
フレームワークなど使って.pumlファイルを保存する作業ディレクトリ内の内容が、そのまま図として表示が出来るようにしたら便利なんじゃないかなと思いました。
Author And Source
この問題について(plantuml-encodingを使ってPHPでPlantUmlする), 我々は、より多くの情報をここで見つけました https://qiita.com/_mmmm_/items/094cc8ac4a2980751524著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .