bound1ess / mermaid-php
由 @knsv (github.com/knsv/mermaid) 维护的 Mermaid 项目的 PHP 接口。
1.1.1
2015-04-25 11:20 UTC
Requires (Dev)
- phpspec/phpspec: ~2.0
This package is not auto-updated.
Last update: 2024-09-24 03:38:53 UTC
README
首先,熟悉一下由 knsv (github.com/knsv/mermaid) 维护的优秀的 Mermaid 项目。
基本上,MermaidPhp 为您提供了一个优美且简洁的接口来生成兼容 Mermaid 的代码。
现在(如果您想尝试一下),让我们回顾一下安装过程。
安装
为了安装 MermaidPhp,您需要 Composer。
在您的项目根目录中运行以下命令
composer require bound1ess/mermaid-php:~1.0
好的,现在将 vendor/autoload.php 文件包含到您的项目中(如果您还没有这样做的话)并准备好开始使用!
使用示例
以下 PHP 代码
use Bound1ess\MermaidPhp\Graph, Bound1ess\MermaidPhp\Printer, Bound1ess\MermaidPhp\Node, Bound1ess\MermaidPhp\Link; $graph = new Graph('from left to right'); $graph->addNodes( $a = new Node('A', ['Hard edge']), $b = new Node('B', ['Round edge', Node::ROUND_EDGE]), $c = new Node('C', ['Decision', Node::RHOMBUS]), $d = new Node('D', ['Result one']), $e = new Node('E', ['Result two']) ); $graph->addLinks( new Link($a, $b, 'Link text'), new Link($b, $c), new Link($c, $d, 'One'), new Link($c, $e, 'Two') ); $code = (new Printer)->printGraph($graph);
如果您想在浏览器中查看此示例,请执行以下操作
- 执行
vendor/bound1ess/php-mermaid/examples/create文件,它将在您的项目根目录中生成example.html文件。 - 通过运行此命令设置 PHP 开发服务器:
php -S localhost:8000。 - 通过访问
localhost:8000/example.html在浏览器中查看example.html文件。
API
-
Bound1ess\MermaidPhp\Printer__construct($testMode = false)$testMode: 当设置为true时,Printer将生成无效的代码,但更容易测试。
printGraph(Graph $graph, $wrapInDiv = false)$graph: 期望一个Bound1ess\MermaidPhp\Graph实例。$wrapInDiv: 当设置为true时,生成的代码将被包裹在一个具有mermaid类的<div>元素中。- 此方法将返回一个字符串。
-
Bound1ess\MermaidPhp\Graph__construct($direction = null)$direction: 如果不为null,将调用setDirection方法。
setDirection($direction)$direction: 有效的值是Node::TOP_BOTTOM、Node::BOTTOM_TOP、Node::LEFT_RIGHT、Node::RIGHT_LEFT、从上到下、从下到上、从左到右、从右到左。- 此方法将返回无(void)。
- 此方法可以抛出一个
Bound1ess\MermaidPhp\Exceptions\InvalidDirectionException实例。
addNode(Node $node)$node: 期望一个Bound1ess\MermaidPhp\Node实例。- 此方法将返回无(void)。
addNodes(Node $node, ...)addLink(Link $link)$link: 期望一个Bound1ess\MermaidPhp\Link实例。- 此方法将返回无(void)。
addLinks(Link $link, ...)addClass(NodeClass $class)$class: 一个Bound1ess\MermaidPhp\NodeClass实例。- 此方法将返回无(void)。
addClassesdynamic: 需要多少个Bound1ess\MermaidPhp\NodeClass实例。- 此方法将返回无(void)。
-
Bound1ess\MermaidPhp\Node__construct($id, array $settings = null)$id: 节点 ID(应为字符串)。$settings: 如果不为null,将调用setText方法。
setText($text, $style = null)$text: 节点文本(应为字符串)。$style: 有效的值是Node::ROUND_EDGE、Node::SQUARE_EDGE、Node::CIRCLE、Node::RHOMBUS、Node::ASYMETRIC_SHAPE。如果传递null,则使用Node::SQUARE_EDGE。- 此方法可以抛出一个
Bound1ess\MermaidPhp\Exceptions\InvalidStyleException实例。 - 此方法将返回无(void)。
attachClass($name)$name: 作为字符串的类名。- 此方法将返回无(void)。
attachClassesdynamic: 需要多少个字符串。- 此方法将返回无(void)。
-
Bound1ess\MermaidPhp\Link__construct(Node $node, Node $anotherNode, $text = null, $isOpen = false)$node: 期望一个Bound1ess\MermaidPhp\Node实例。$anotherNode: 应期望一个Bound1ess\MermaidPhp\Node的实例。$text: 链接上的文本 (应为字符串或null)。$isOpen: 链接是否应该开启或有箭头 (应为布尔值,默认值为false)。
setText($text)$text: 链接上的文本 (应为字符串)。- 此方法将返回无(void)。
isOpen($newValue = null)$newValue: 如果传递null,则此方法将返回当前值,否则将设置新值 (应为布尔值)。- 此方法将返回布尔值或无返回值(void)。
-
Bound1ess\MermaidPhp\NodeClass__construct($name)$name: 作为字符串的类名。
add($property, $value)$property: 属性名称,以string为格式。$value: 属性值,以string为格式。- 此方法将返回类实例本身。
许可证信息
本项目采用 MIT 许可证(请参阅许可证文件以获取详细信息)。