tasuku43 / mermaid-class-diagram
Generate class diagrams code written in mermaid-js.
v0.1.3
2024-04-20 21:04 UTC
Requires
- nikic/php-parser: ^4.14
- symfony/console: ^6.0
- symfony/finder: ^6.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
Overview
Generate Mermaid-js class diagram from php code.
This tool focuses on the relationships between classes and omits the details of class internals at this stage.
Installation
Via Composer
composer require --dev tasuku43/mermaid-class-diagram
Usage
Here is an example run on a sample project
$ tree
.
├── composer.json
├── composer.lock
├── src
│ ├── SomeAbstractClass.php
│ ├── SomeClassA.php
│ ├── SomeClassB.php
│ ├── SomeClassC.php
│ └── SomeInterface.php
└── vendor
class SomeClassA extends SomeAbstractClass { private SomeClassB $someClassB; public function __construct(private SomeClassC $someClassC) { } } class SomeClassB { } class SomeClassC { } abstract class SomeAbstractClass implements SomeInterface { } interface SomeInterface { }
Execute command by specifying a directory
$ vendor/bin/mermaid-class-diagram generate --path src classDiagram class SomeClassC { } class SomeClassB { } class SomeAbstractClass { <<abstruct>> } class SomeClassA { } class SomeInterface { <<interface>> } SomeInterface <|.. SomeAbstractClass: realization SomeAbstractClass <|-- SomeClassA: inheritance SomeClassA *-- SomeClassB: composition SomeClassA *-- SomeClassC: composition
classDiagram class SomeClassC { } class SomeClassB { } class SomeAbstractClass { <<abstruct>> } class SomeClassA { } class SomeInterface { <<interface>> } SomeInterface <|.. SomeAbstractClass: realization SomeAbstractClass <|-- SomeClassA: inheritance SomeClassA *-- SomeClassB: composition SomeClassA *-- SomeClassC: composition
Execute command by specifying a file
$ vendor/bin/mermaid-class-diagram generate --path src/SomeClassA.php classDiagram class SomeClassA { } SomeAbstractClass <|-- SomeClassA: inheritance SomeClassA *-- SomeClassB: composition SomeClassA *-- SomeClassC: composition
classDiagram class SomeClassA { } SomeAbstractClass <|-- SomeClassA: inheritance SomeClassA *-- SomeClassB: composition SomeClassA *-- SomeClassC: composition
License
The MIT License (MIT). Please see LICENSE for more information.