onurb/doctrine-metadata-grapher

此包的最新版本(1.1.11)没有提供许可证信息。

用于格式化 doctrine 元数据以用于 UML API 的辅助工具

1.1.11 2018-02-18 00:55 UTC

This package is not auto-updated.

Last update: 2024-09-21 15:21:22 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Build Status Latest Stable Version Total Downloads

MetadataGrapher 格式化对象数据,为 YUML api 准备数据,以生成视觉实体映射图

安装

  • 将 composer 依赖项添加到您的项目中
    // composer.json
    {
        // ...
        require: {
            // ...
            "onurb/doctrine-metadata-grapher": "~1.1"
        }
    }

使用

将 Doctrine 类元数据数组发送到 YUMLMetadataGrapher::generateFromMetadata() 方法
它返回发送到 YUML 的字符串,以从 api 获取映射图
如果您是 symfony 用户,则应安装 onurb/doctrine-yuml-bundle,该 bundle 已经使用了此库,并添加了一个链接到开发工具栏。如果您是 Zend 框架用户,则当您安装 zend-developer-tools 时,它包含在 DoctrineORMModule 中

前往此 github 仓库以获取检索类元数据数组的具体使用示例

##自定义显示:添加注释,为类着色,隐藏或显示字段描述,隐藏特定或所有实体列

完全可选,您可以显示字段描述,为地图添加颜色,或编写与特定类链接的注释。 带有注释的彩色地图

为此,库提供了一些 Doctrine 注解,用于定义颜色、添加注释、隐藏或显示属性属性或显示图中的特定方法。所有这些都在下面描述

选项使用

显示字段描述

要显示实体属性,请在您的实体上使用 @ShowAttributesProperties 注解

Yuml Graphs

[...]
use Onurb\Doctrine\ORMMetadataGrapher\Mapping as Grapher;
/**
* @Grapher\ShowAttributesProperties
* @ORM\Entity
*/
Class MyEntity
{
    //[...]
}

也可以显示所有实体的属性,仅在不太重要的实体上隐藏它

    /**
     * @param ClassMetadata[] $metadata
     * @param boolean $showFieldsDescription
     * @param array $colors
     * @param array $notes
     * @return string
     */
    public function generateFromMetadata(
        array $metadata,
        $showFieldsDescription = false,
        $colors = array(),
        $notes = array()
    )

要显示字段描述,只需将 $showFieldsDescription 转换为 true

    $metadataGrapher = new \Onurb\Doctrine\ORMMetadataGrapher\YumlMetadataGrapher();
    $dsl_text = $metadataGrapher->generateFromMetadata($classMetadata, true);

还可以使用 @HideAttributesProperties 注解(如果 $showFieldsDescription 转换为 true:如果为 false,则没有效果)来隐藏一个实体(或多个)

/**
* @Grapher\HideAttributesProperties
*/
MyEntity
{
    //[...]
}

使用注解隐藏实体列:在类上使用 @grapher\HideColumns 注解

/**
* @Grapher\Hidecolumns
*/
MyEntity
{
    //[...]
}

或使用 @Grapher\HiddenColumn 在实体属性上隐藏您想要隐藏的特定秘密列:可用于隐藏您的凭据逻辑,或避免在图中出现重复字段,如 created_at 或 updated_at。

MyEntity
{
    /**
     * @ORM\Column(/* ... */)
     * @Grapher\HiddenColumn
     */
    private $secret;
}

使用颜色

您可以使用 yuml 颜色,并根据需要将其应用于类或整个命名空间。颜色优先级由命名空间中的层次结构决定...

颜色使用

定义类颜色的最简单方法是在实体中使用注解,如下所示

use Onurb\Doctrine\ORMMetadataGrapher\Mapping as Grapher;
/**
* @Grapher\Color("blue")
*/

但如果您想为整个命名空间设置相同的颜色(例如显示带有特定颜色的 zend 模块或 Symfony 模块),那么对每个类进行操作可能会很无聊。

因此,您还可以在命名空间中定义默认颜色,但不是使用注解,而是应用于实体。

这是通过生成Metadata() 方法的第三个参数来完成的,以注入关联数组。颜色优先级由注解提供,用户可以为命名空间定义颜色,并为他想要突出的类定义特定颜色。这可以通过参数选项根据您的框架逻辑传递,以允许最终用户进行自定义

    // [...]
    $defaultColors = array(
        'MyModule\\Project\Namespace\FunctionalityOne => 'green,
        'MyModule\\Project\Namespace\FunctionalityTwo => 'red,
        'AnotherModule\\Namespace' => 'violet',
    );
    $dsl_text = $metadataGrapher->generateFromMetadata($classMetadata, false, $defaultColors);

可用的颜色完整列表可在此处找到 链接 颜色列表

显示方法

最终用户可以在图表中显示他想要的任何方法,只需添加注释
Class With Methods

use use Onurb\Doctrine\ORMMetadataGrapher\Mapping as Grapher;

// [...]
/**
* @Grapher\IsDisplayedMethod()
*/
public function myImportantMethod()
{}

添加注释

现在您可以为映射中的实体添加一个关联的注释 注释图表

注释的使用

注释由直接在要注释的类上声明的注释进行管理

use Doctrine\ORM\Mapping as ORM;
use Onurb\Doctrine\ORMMetadataGrapher\Mapping as Grapher;
/**
* @Grapher\Note("My first Entity note")
* @ORM\Entity
*/
class MyEntity{}

默认情况下,注释颜色为黄色...也许是因为便利贴的颜色...我的选择 ;)

您可以这样自定义

/**
* @Grapher\Note(value="An Entity note", color="a_great_yuml_color")
*/

就像我们对颜色所做的那样,您也可以在generateMetadata方法中注入注释数组,但与注释结合使用是无用的 => 我们不在命名空间上放置注释,只放置实体。