Generate diagrams and flowcharts as HTML which is based on mermaid-js.
<?php
use JBZoo\MermaidPHP\Graph;
use JBZoo\MermaidPHP\Link;
use JBZoo\MermaidPHP\Node;
use JBZoo\MermaidPHP\Render;
$graph = (new Graph(['abc_order' => true]))
->addSubGraph($subGraph1 = new Graph(['title' => 'Main workflow']))
->addSubGraph($subGraph2 = new Graph(['title' => 'Problematic workflow']))
->addStyle('linkStyle default interpolate basis');
$subGraph1
->addNode($nodeE = new Node('E', 'Result two', Node::SQUARE))
->addNode($nodeB = new Node('B', 'Round edge', Node::ROUND))
->addNode($nodeA = new Node('A', 'Hard edge', Node::SQUARE))
->addNode($nodeC = new Node('C', 'Decision', Node::CIRCLE))
->addNode($nodeD = new Node('D', 'Result one', Node::SQUARE))
->addLink(new Link($nodeE, $nodeD))
->addLink(new Link($nodeB, $nodeC))
->addLink(new Link($nodeC, $nodeD, 'A double quote:"'))
->addLink(new Link($nodeC, $nodeE, 'A dec char:♥'))
->addLink(new Link($nodeA, $nodeB, ' Link text<br>/\\!@#$%^&*()_+><\' " '));
$subGraph2
->addNode($alone = new Node('alone', 'Alone'))
->addLink(new Link($alone, $nodeC));
echo $graph; // Get result as string (or $graph->__toString(), or (string)$graph)
$htmlCode = $graph->renderHtml([
'debug' => true,
'version' => '8.6.0',
'theme' => Render::THEME_DARK,
'title' => 'Example',
'show-zoom' => true
]); // Get result as HTML code for debugging
echo $graph->getLiveEditorUrl(); // Get link to live editor
graph TB;
subgraph "Main workflow"
E["Result two"];
B("Round edge");
A["Hard edge"];
C(("Decision"));
D["Result one"];
E-->D;
B-->C;
C-->|"A double quote:#quot;"|D;
C-->|"A dec char:#hearts;"|E;
A-->|"Link text<br>/\!@#$%^#amp;*()_+><' #quot;"|B;
end
subgraph "Problematic workflow"
alone("Alone");
alone-->C;
end
linkStyle default interpolate basis;
make update
make test-all
MIT
- CI-Report-Converter - Converting different error reports for deep compatibility with popular CI systems.
- Composer-Diff - See what packages have changed after
composer update
. - Composer-Graph - Dependency graph visualization of composer.json based on mermaid-js.
- Utils - Collection of useful PHP functions, mini-classes, and snippets for every day.
- Image - Package provides object-oriented way to manipulate with images as simple as possible.
- Data - Extended implementation of ArrayObject. Use files as config/array.
- Retry - Tiny PHP library providing retry/backoff functionality with multiple backoff strategies and jitter support.
- SimpleTypes - Converting any values and measures - money, weight, exchange rates, length, ...