herrira / mermaid
A mermaid syntax builder for PHP.
0.1.2
2022-11-12 11:05 UTC
Requires (Dev)
- phpunit/phpunit: ^9.5
README
A PHP library that enables to you generate mermaid-js syntax.
Available diagrams:
- Class diagram
What's mermaid ?
From the docs:
It is a JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically.
You can also use it in Github's markdown.
Installation
You can install the package via composer:
composer require herrira/mermaid
Use:
use Herrira\Mermaid\ClassDiagram\Builder; $builder = new Builder(); $builder->inheritance('Duck', 'Animal') ->inheritance('Fish', 'Animal') ->inheritance('Zebra', 'Animal') ->publicAttribute('Animal', 'age', 'int') ->publicAttribute('Animal', 'gender', 'String') ->publicMethod('Animal', 'isMammal') ->publicMethod('Animal', 'mate') ->class(function ($class) { $class->name('Duck') ->publicAttribute('beakColor', 'String') ->publicMethod('swim') ->publicMethod('quack'); }) ->class(function ($class) { $class->name('Fish') ->privateAttribute('sizeInFeet', 'int') ->privateMethod('canEat'); }) ->class(function ($class) { $class->name('Zebra') ->publicAttribute('is_wild', 'bool') ->publicMethod('run'); });
Will result in:
classDiagram Animal <|-- Duck Animal <|-- Fish Animal <|-- Zebra Animal : +int age Animal : +String gender Animal: +isMammal() Animal: +mate() class Duck{ +String beakColor +swim() +quack() } class Fish{ -int sizeInFeet -canEat() } class Zebra{ +bool is_wild +run() }
Note: Indentation support will be available in future versions.