fi/doctrine2-exporter

该包已被废弃且不再维护。作者建议使用mysql-workbench-schema-exporter/doctrine2-exporter包。

MySQL Workbench Schema Exporter for Doctrine 2

4.0.1 2021-09-29 08:37 UTC

This package is auto-updated.

Last update: 2021-09-29 19:39:58 UTC


README

这是一个将MySQL Workbench模型 (*.mwb) 转换为Doctrine 2模式(Schema)的导出器。

先决条件

  • PHP 5.4+
  • 使用Composer安装依赖

安装

php composer.phar require --dev mysql-workbench-schema-exporter/doctrine2-exporter

这将安装导出器,并需要mysql-workbench-schema-exporter

然后,可以使用vendor/bin/mysql-workbench-schema-export调用CLI脚本。

格式化设置选项

除了mysql-workbench-schema-exporter的通用选项外,还支持以下选项

Doctrine 2.0的通用设置选项

  • useAutomaticRepository

    自动生成实体仓库类名。

  • bundleNamespace

    实体类名的全局命名空间前缀。

  • entityNamespace

    实体命名空间。

    默认为Entity

  • repositoryNamespace

    实体仓库类名的命名空间前缀。要应用此配置,必须将useAutomaticRepository设置为true

  • skipColumnWithRelation

    不要生成与其他表相关联的列定义(对于YAML)或列变量以及列的获取器和设置器(对于Annotation)。

    默认为false

  • relatedVarNameFormat

    生成相关列名的格式。

    默认为%name%%related%

  • nullableAttribute

    如何生成列和连接的null属性。如果要根据其值自动包含null属性,请设置为auto。要始终包含null属性,请设置为always

    默认为auto

  • generatedValueStrategy

    自动生成值的策略。

    默认为auto

  • defaultCascade

    要定义的默认级联选项。

    默认为false

Doctrine 2.0 YAML Schema

设置选项

  • extendTableNameWithSchemaName

    在表名旁边包含模式名称。

    默认为false

Doctrine 2.0 Annotation

设置选项

  • useAnnotationPrefix

    Doctrine注解前缀。

    默认为ORM\

  • skipGetterAndSetter

    不要生成列的获取器和设置器。

    默认为false

  • generateEntitySerialization

    生成方法__sleep()以在序列化实体时仅包括真实列。

    默认为true

  • generateExtendableEntity

    为模式中的每个表生成两个类,一个用于基础类,另一个用于扩展类。如果扩展类已存在,则不会生成它。因此,可以在扩展类中安全地放置自定义代码。

    此选项将使用单表继承来生成实体。

    默认为false

  • quoteIdentifierStrategy

    此选项确定是否应用标识符引号,取决于策略值。

    • auto,如果标识符是保留字,则启用标识符引号。
    • always,始终引号标识符。
    • none,从不引号标识符。

    默认为auto

  • extendsClass

    此选项允许您定义一个基类,所有生成的实体都从此基类扩展。

    默认值为 ''

  • propertyTypehint

    此选项允许您指定是否应启用所有 非标量 属性的类型提示,这些属性的类型是类。例如,\DateTime 将进行类型提示,但不是 objectstring

    默认为false

模型注释行为

  • {d:bundleNamespace}AcmeBundle{/d:bundleNamespace}(应用于表)

    覆盖 bundleNamespace 选项。

  • {d:m2m}false{/d:m2m}(应用于表)

    MySQL Workbench 模式导出器会尝试自动猜测哪些表是多对多映射表,并且不会为这些表生成实体类。

    如果一个表恰好包含两个指向不同表的唯一键,并且这些表不是多对多映射表,则该表被认为是映射表。

    有时这种猜测是错误的。但您可以在表的注释中添加提示,以表明它不是映射表。只需在表注释中的任何位置使用 {d:m2m}false{/d:m2m} 即可。

  • {d:unidirectional}true{/d:unidirectional}(应用于外键)

    默认情况下,所有外键都将导致双向关系。如果您只想有一个单向关系,请将标志添加到外键的注释中。

  • {d:owningSide}true{/d:owningSide}(应用于外键)

    在一个双向多对多映射表中,关系的拥有方是随机选择的。如果您将此提示添加到 m2m 表的一个外键上,您可以定义 Doctrine 的拥有方。

  • {d:cascade}persist, merge, remove, detach, all{/d:cascade}(应用于外键)

    您可以在外键上指定 Doctrine 级联选项。它们将生成到注解中。(参考

  • {d:fetch}EAGER{/d:fetch}(应用于外键)

    您可以在外键的注释中指定关系的获取类型。可以是 EAGER 或 LAZY(Doctrine 默认为 LAZY)。

  • {d:orphanRemoval}true{/d:orphanRemoval}(应用于外键)

    这是您可以在外键注释中设置的另一个选项。(参考

  • {d:order}column{/d:order}(应用于外键)

    将 OrderBy 注解应用于一对多和多对多关系。OrderBy 注解可以按以下格式编写

    column[,(asc|desc)]
    

    支持多列,由换行符分隔。示例用法

    {d:order}
      column1
      column1,desc
    {/d:order}
    

Doctrine 2.0 注解与 ZF2 输入过滤器类

Doctrine 2.0 注解与 ZF2 输入过滤器类格式化程序直接扩展 Doctrine 2.0 注解。设置选项和模型注释行为与 Doctrine 2.0 注解完全相同,并添加以下附加功能。

设置选项

  • generateEntityPopulate

    为实体类生成 populate() 方法。

    默认为true

  • generateEntityGetArrayCopy

    为实体类生成 getArrayCopy() 方法。

    默认为true

命令行界面 (CLI)

请参阅 mysql-workbench-schema-exporter 的文档

链接