tasuku43/mermaid-class-diagram

生成用 mermaid-js 编写的类图代码。

v0.3.0 2024-08-13 06:34 UTC

This package is auto-updated.

Last update: 2024-09-13 06:50:25 UTC


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