【PHP】レンタルサーバーでPlantUMLを描画してみた

こちらのサイトではDRUPAL10に関連する記事を掲載しています。

はじめに

レンタルサーバーロリポップでPlantUMLを表示させてみました。lantuml-encodingを使えば、SVGで出力されるようです。

インストール手順

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を取得し、それをそのまま画面に出します。

スクリーンショット 2019-11-07 9.58.16.png

PlantUmlを別ファイルに記述する

./umls/test.puml

@startuml
Alice -> Bob: hello
@enduml

index.php

<?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の記述が必要なのですが、エンコード時には取り除きます。

参考

plantuml-encodingを使ってPHPでPlantUmlする - Qiita
概要PHP で API クライアントを実装する を参考に、plantuml-encodingを使用してPlantUMLのコードを圧縮文字列にする変換をPHPで行う。最終目的: PlantUMLの…
このサイトに関するご意見・ご質問はこちらまで

この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました