tasuku43 / mermaid-class-diagram
生成用 mermaid-js 编写的类图代码。
v0.3.0
2024-08-13 06:34 UTC
Requires
- nikic/php-parser: ^4.14
- symfony/console: ^7.0
- symfony/finder: ^7.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
概述
从 PHP 代码生成 Mermaid-js 类图。
此工具专注于类之间的关系,目前忽略类内部的细节。
安装
通过 Composer
composer require --dev tasuku43/mermaid-class-diagram
用法
以下是在一个示例项目中运行的示例
$ tree
.
├── composer.json
├── composer.lock
├── src
│ ├── SomeAbstractClass.php
│ ├── SomeClassA.php
│ ├── SomeClassB.php
│ ├── SomeClassC.php
│ ├── SomeClassD.php
│ ├── SomeClassE.php
│ └── SomeInterface.php
└── vendor
class SomeClassA extends SomeAbstractClass { private SomeClassB $someClassB; public function __construct(private SomeClassC $someClassC, SomeClassD $someClassD, private int $int) { } } class SomeClassB { } class SomeClassC { } class SomeClassD { } class SomeClassE { public function __construct(private SomeClassA $a) { $b = new SomeClassB; } public function dependAandC(SomeClassA $a): SomeClassC { } } abstract class SomeAbstractClass implements SomeInterface { } interface SomeInterface { }
通过指定目录执行命令
$ vendor/bin/mermaid-class-diagram generate --path src classDiagram class SomeAbstractClass { <<abstract>> } class SomeClassA { } class SomeClassB { } class SomeClassC { } class SomeClassD { } class SomeClassE { } class SomeInterface { <<interface>> } SomeInterface <|.. SomeAbstractClass: realization SomeAbstractClass <|-- SomeClassA: inheritance SomeClassA *-- SomeClassB: composition SomeClassA *-- SomeClassC: composition SomeClassD <.. SomeClassA: dependency SomeClassE *-- SomeClassA: composition SomeClassB <.. SomeClassE: dependency SomeClassC <.. SomeClassE: dependency
通过指定文件执行命令
$ vendor/bin/mermaid-class-diagram generate --path src/SomeClassA.php classDiagram class SomeClassA { } SomeAbstractClass <|-- SomeClassA: inheritance SomeClassA *-- SomeClassB: composition SomeClassA *-- SomeClassC: composition SomeClassD <.. SomeClassA: dependency
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 LICENSE。