hamichen / doctrine2-exporter
Doctrine 2的MySQL Workbench模式导出工具
Requires
- php: >=5.4.0
- hamichen/mysql-workbench-schema-exporter: 3.0.8
This package is not auto-updated.
Last update: 2024-09-18 09:55:27 UTC
README
这是一个将MySQL Workbench模型 (*.mwb) 转换为Doctrine 2模式的导出器。
先决条件
- 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
。设置为always
以始终包含null属性。默认值为
auto
。 -
generatedValueStrategy
自动生成值的策略。
默认值为
auto
。 -
defaultCascade
要定义的默认级联选项。
默认值为
false
。
Doctrine 2.0 YAML模式
设置选项
-
extendTableNameWithSchemaName
在表名旁边包含模式名称。
默认值为
false
。
Doctrine 2.0 Annotation
设置选项
-
useAnnotationPrefix
Doctrine注释前缀。
默认值为
ORM\
。 -
skipGetterAndSetter
不生成列获取器和设置器。
默认值为
false
。 -
generateEntitySerialization
生成方法
__sleep()
,以便在序列化实体时仅包括真实列。默认值为
true
。 -
generateExtendableEntity
为模式中的每个表生成两个类,一个用于基础,一个用于扩展类。如果扩展类已存在,则不会生成扩展类。因此,可以在扩展类中放置自定义代码。
此选项将使用单表继承生成实体。
默认值为
false
。 -
quoteIdentifierStrategy
此选项确定是否根据策略值应用标识符引号。
auto
,如果标识符是保留词,则启用标识符引号。always
,始终引用标识符。none
,从不引用标识符。
默认值为
auto
。 -
extendsClass
此选项允许您定义一个基类,所有生成的实体都从中扩展。
默认值为
''
。 -
propertyTypehint
此选项允许您指定是否应启用所有非标量属性的类型提示,其类型是类。例如,
\DateTime
将进行类型提示,但不是object
或string
。默认值为
false
。
模型注释行为
-
{d:bundleNamespace}AcmeBundle{/d:bundleNamespace}
(应用于表)覆盖
bundleNamespace
选项。 -
{d:m2m}false{/d:m2m}
(应用于表)MySQL Workbench Schema Exporter 尝试自动猜测哪些表是多对多映射表,并且不会为这些表生成实体类。
如果一个表被认为是映射表,如果它恰好包含两个指向不同表的 foreign key,并且这些表不是多对多映射表。
有时这种猜测对您来说是不正确的。但您可以在表的注释中添加一个提示,以表明它不是映射表。只需在表注释中的任何地方使用
{d:m2m}false{/d:m2m}
即可。 -
{d:unidirectional}true{/d:unidirectional}
(应用于 ForeignKey)默认情况下,所有 foreign key 都将产生双向关系。如果您只想有一个单向关系,请将标志添加到 foreign key 的注释中。
-
{d:owningSide}true{/d:owningSide}
(应用于 ForeignKey)在双向多对多映射表中,关系的一方是随机选择的。如果您将此提示添加到 m2m 表的一个 foreign key 上,您可以为 Doctrine 定义拥有方。
-
{d:cascade}persist, merge, remove, detach, all{/d:cascade}
(应用于 ForeignKey)您可以在 foreign key 的注释中指定 Doctrine 级联选项。它们将被生成到注解中。(参考)
-
{d:fetch}EAGER{/d:fetch}
(应用于 ForeignKey)您可以在 foreign key 的注释中指定关系的抓取类型。可以指定为 EAGER 或 LAZY,Doctrine 默认是 LAZY。
-
{d:orphanRemoval}true{/d:orphanRemoval}
(应用于 ForeignKey)您可以在 foreign key 的注释中设置另一个选项。(参考)
-
{d:order}column{/d:order}
(应用于 ForeignKey)将 OrderBy 注解应用于 One To Many 和 Many To Many 关系。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 的文档