ateliee / plantuml-parser
PlantUML 解析包
v0.1.0
2019-12-14 11:45 UTC
Requires
- php: >=5.5.38
- monolog/monolog: ^1.18.2
- vlucas/phpdotenv: ^3.6
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^4.8
- psy/psysh: ^0.9.9
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-14 22:31:22 UTC
README
由于没有可以书写和读取PlantUML的,所以创建了它。
用法
- PHP 5.5.38 >=
功能
PlantUML功能很多,但只支持读取和输出。
目前不考虑支持逻辑表达式
支持范围
- 用例图
- 活动图
- 状态图
- 序列图
- 类图
- 对象图
- 组件图
- 组件图(包图)
- 组件图(部署图)
安装
composer require ateliee/plantuml-parser
示例
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use Ateliee\PlantUMLParser\PUMLParser;
use Ateliee\PlantUMLParser\PUMLKeyValue;
use Ateliee\PlantUMLParser\PUMLStr;
use Ateliee\PlantUMLParser\PUMLElementList;
use Ateliee\PlantUMLParser\Structure\PUMLSkinParam;
use Ateliee\PlantUMLParser\Structure\PUMLDefine;
use Ateliee\PlantUMLParser\Structure\PUMLPackage;
use Ateliee\PlantUMLParser\Structure\PUMLEntity;
use Ateliee\PlantUMLParser\Structure\PUMLRelation;
$uml = new PUMLElementList();
$uml->add((new PUMLDefine('MAIN_ENTITY', '#FCE4D6-F8CBAD'))->setComment("commnt to here"));
$uml->add(
(new PUMLSkinParam('class'))
->setComment("default style.")
->add(new PUMLKeyValue('BackgroundColor', 'METAL'))
->add(new PUMLKeyValue('BorderColor', 'Black'))
->add(new PUMLKeyValue('ArrowColor', 'Black'))
);
$uml->add(
(new PUMLPackage('DB', 'ext', '<<Database>>'))
->add(
(new PUMLEntity('Customer', 'customer'))
->add(new PUMLStr('+ ID [PK]'))
->add(new PUMLStr('--'))
->add(new PUMLStr('name'))
->add(new PUMLStr('zip'))
->add(new PUMLStr('address'))
->add(new PUMLStr('tel'))
->add(new PUMLStr('fax'))
)
);
$uml->add(
(new PUMLPackage('開発対象システム', 'target_system'))
->add(
(new PUMLEntity('注文テーブル', 'order', '<<主,TRANSACTION_MARK_COLOR>> MAIN_ENTITY'))
->add(new PUMLStr('+ 注文ID [PK]'))
->add(new PUMLStr('--'))
->add(new PUMLStr('# 顧客ID [FK]'))
->add(new PUMLStr('注文日時'))
->add(new PUMLStr('配送希望日'))
->add(new PUMLStr('配送方法'))
->add(new PUMLStr('お届け先名'))
->add(new PUMLStr('お届け先住所'))
->add(new PUMLStr('決済方法'))
->add(new PUMLStr('合計金額'))
->add(new PUMLStr('消費税額'))
->setComment("マスターテーブルを M、トランザクションを T などと安直にしていますが、
チーム内でルールを決めればなんでも良いと思います。交差テーブルは \"I\" とか。
角丸四角形が描けない代替です。
1文字なら \"主\" とか \"従\" とか日本語でも OK だったのが受ける。")
)
);
$uml->add(
(new PUMLRelation('customer', '|o-ri-o{', 'order'))
);
$plant_uml = new PUMLParser();
$plant_uml->save(__DIR__.'/test.puml', $uml);
@startuml /' commnt to here '/ !define MAIN_ENTITY #FCE4D6-F8CBAD /' default style. '/ skinparam class{ BackgroundColor METAL BorderColor Black ArrowColor Black } package "DB" as ext <<Database>>{ entity "Customer" as customer{ + ID [PK] -- name zip address tel fax } } package "開発対象システム" as target_system{ /' マスターテーブルを M、トランザクションを T などと安直にしていますが、 チーム内でルールを決めればなんでも良いと思います。交差テーブルは "I" とか。 角丸四角形が描けない代替です。 1文字なら "主" とか "従" とか日本語でも OK だったのが受ける。 '/ entity "注文テーブル" as order <<主,TRANSACTION_MARK_COLOR>> MAIN_ENTITY{ + 注文ID [PK] -- # 顧客ID [FK] 注文日時 配送希望日 配送方法 お届け先名 お届け先住所 決済方法 合計金額 消費税額 } } customer |o-ri-o{ order @enduml