A PHP library that enables to you generate mermaid-js syntax.
- Class diagram
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.
You can install the package via composer:
composer require herrira/mermaid
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.