IDE支持
-
phpstorm
在Plugins中 安装
PlantUML integration插件到
http://www.graphviz.org/网站下载graphviz.exe并安装(这个软件可以支持更多的UML语法)将graphviz安装目录下的
dot.exe路径添加到PlantUML的设置中
文档
-
文档地址:
http://plantuml.com/立即学习“PHP免费学习笔记(深入)”;
建议使用
活动图-Activity-bate语法:活动图Activity-Beta(https://plantuml.com/zh/activity-diagram-beta)活动图(新语法)
当前活动图(activity diagram)的语法有诸多限制和缺点,比如代码难以维护。所以从V7947开始提出一种全新的、更好的语法格式和软件实现供用户使用(beta版)。就像序列图一样,新的软件实现的另一个优点是它不再依赖与Graphviz。
新的语法将会替换旧的语法。然而考虑到兼容性,旧的语法仍被能够使用以确保向前兼容。
但是我们鼓励用户使用新的语法格式。
语法
基础
@startuml、@enduml
开始、结束标记,表示UML解析的部分start、end
表示图示的开始和结束。图示的开始和结束。:Hello world;
活动标签(activity label)以冒号开始,以分号结束。活动默认安装它们定义的顺序就行连接。if、then、else和elseif
设置分支测试。标注文字则放在括号中。repeat、repeatwhile重复循环。while和endwhile进行while循环。还可以在关键字endwhile后添加标注,还有一种方式是使用关键字is。fork,fork again和end fork表示并行处理。note、end note、floating note left等等表示注释,例如:
floating note left: This is a note :foo2; note right This note is on several //lines// and can contain <b>HTML</b> ==== * Calling the method ""foo()"" is prohibited end note
#HotPin:activity;、#AAAAAA:ending of the process;表示颜色使用
->标记,你可以给箭头添加文字或者修改箭头颜色。dotted,dashed,boldorhidden arrows和颜色标记,例如-[#blue]->通过定义分区(partition),你可以把多个活动组合(group)在一起。通过定义分区(partition),你可以把多个活动组合(group)在一起。例如:
partition Initialization {
:read config file;
:init internal variable;
}使用管道符|来定义泳道。还可以改变泳道的颜色。
|Swimlane1| start :foo1; |#AntiqueWhite|Swimlane2| :foo2; :foo3; |Swimlane1| :foo4; |Swimlane2| :foo5; stop
关键字
detach移除箭头。通过修改活动标签最后的分号分隔符(;),可以为活动设置不同的形状。
|、<、>、/、]、}
:next(o)| :Receiving; split :nak(i)< :ack(o)> split again :ack(i)< :next(o) on several line| :i := i + 1] :ack(o)> split again :err(i)< :nak(o)> split again :foo/ split again :i > 5} stop end split :finish;
一个例子
@startuml
start
if (is login?) then (Y)
if (gived box?) then (Y)
:illegal request;
detach
else (N)
:release box;
:get boxOid;
endif
else (N)
if (has boxOid?) then (N)
:illegal request;
detach
endif
endif
:check wechat broswer;
if (wechat broswer?) then (Y)
if (get openid from cookie?) then (Y)
if (get userInfo from DB by openid?) then (N)
:clear openid in cookie;
:re-request Url;
detach
endif
else (N)
:location wechat auth;
detach
endif
endif
:receive chocolate;
end
@enduml


