jasir / php-plantuml-wrap
PHP 中通过 PlantUml 生成 UML 的包装器,基于 sufir/php-plantuml-wrap 进行分支
dev-master
2017-04-07 23:46 UTC
Requires
- php: >= 5.3
This package is not auto-updated.
Last update: 2024-09-15 02:14:13 UTC
README
PHP 中 PlantUml 的包装器。快速生成 UML 图。
分支自 https://github.com/Sufir/php-plantuml-wrap
使用 composer 安装
"require": {
"sufir/php-plantuml-wrap": "dev-master"
},
示例 1
$plantuml = new PlantUml(); // Create new component diagram $diagram = $plantuml->createDiagram('component') ->setUmlNotation(Component::NOTATION_UML1); // Create diagram elements $firstComponent = $plantuml->createElement('component', 'component', 'First Component') ->setNote("A note can also be\non several lines", 'right'); $da = $plantuml->createElement('component', 'interface', 'Data Access'); $http = $plantuml->createElement('component', 'interface', 'HTTP') ->setNote("Web Service only"); // Create relations $rel1 = $plantuml->createRelation($firstComponent, $da) ->setDirection(Relation::DIRECTION_LEFT); $rel2 = $plantuml->createRelation() ->setFrom($firstComponent) ->setTo($http, Relation::ARROW_ASSOCIATION) ->setDirection(Relation::DIRECTION_BOTTOM) ->setLineType(Relation::LINE_DOTTED); // Assembly diagram $diagram->addElement($firstComponent) ->addElement($da) ->addElement($http) ->addRelation($rel1) ->addRelation($rel2); // Render diagram echo $plantuml->convertDiagram($diagram);
示例 2
$plantuml = new PlantUml(); // Create new component diagram $diagram = $plantuml->createDiagram('component') ->setUmlNotation(Component::NOTATION_UML2); // Style for webservers $webserverSkin = $plantuml->createSkin() ->setBackgroundGradient('white', 'lightblue') ->setBorderColor('black'); // Create elements stereotype https://en.wikipedia.org/wiki/Stereotype_(UML) $webserverStereotype = $plantuml->createStereotype('Web Server') ->setSkin($webserverSkin); // Create diagram elements $firstComponent = $plantuml->createElement('component', 'component', 'First Component') ->setNote("A note can also be\non several lines", 'right'); $da = $plantuml->createElement('component', 'interface', 'Data Access'); $http = $plantuml->createElement('component', 'interface', 'HTTP') ->setNote("Web Service only"); $webserver1 = $plantuml->createElement('component', 'component', 'Apache') ->addStereotype($webserverStereotype); $webserver2 = $plantuml->createElement('component', 'component', 'Nginx') ->addStereotype($webserverStereotype); // Grouping components $webserversGroup = $plantuml->createElement('component', 'frame', 'Servers') ->addElement($webserver1) ->addElement($webserver2); // Create relations $rel1 = $plantuml->createRelation($firstComponent, $da) ->setDirection(Relation::DIRECTION_LEFT); $rel2 = $plantuml->createRelation() ->setFrom($firstComponent) ->setTo($http, Relation::ARROW_EXTENSION) ->setLabel('Rel label...') ->setDirection(Relation::DIRECTION_BOTTOM) ->setLineType(Relation::LINE_DOTTED); $rel3 = $plantuml->createRelation() ->setFrom($http) ->setTo($webserver1, Relation::ARROW_ASSOCIATION) ->setDirection(Relation::DIRECTION_RIGHT) ->setColor('darkgreen'); $rel4 = $plantuml->createRelation() ->setFrom($http) ->setTo($webserver2, Relation::ARROW_ASSOCIATION) ->setDirection(Relation::DIRECTION_RIGHT) ->setColor('darkgreen'); // Assembly diagram $diagram->addElement($firstComponent) ->addElement($da) ->addElement($http) ->addElement($webserversGroup) ->addRelation($rel1) ->addRelation($rel2) ->addRelation($rel3) ->addRelation($rel4); // Render diagram echo $plantuml->convertDiagram($diagram);