leongersen / entity-generator
支持oneToMany和manyToOne关系的数据库优先Doctrine实体生成器
0.0.5
2020-01-24 09:54 UTC
Requires
- php: ^7.1
- greenlion/php-sql-parser: ^4.3
- nyholm/dsn: ^1.0
- symfony/console: ^4.0|^5.0
- symfony/filesystem: ^4.0|^5.0
- twig/twig: ^2.12|^3.0
Requires (Dev)
- symfony/var-dumper: ^4.0|^5.0
This package is auto-updated.
Last update: 2024-09-10 17:15:32 UTC
README
Doctrine项目将在Doctrine 3中移除生成实体的支持。
并非所有开发工作流程都适合提议的实体优先数据库管理策略。
为了继续支持数据库优先工作流程,该项目实现了一个面向数据库的替代实体生成器。
特性
- 生成带有类型注解、getter、setter、adders和removers的实体;
- 支持
oneToMany
和manyToOne
关系,包括属性和方法的多态化。
许可证
本项目采用MIT许可证,并且可以免费用于任何个人或商业项目。
用法
bin/entity-generator entity-generator:generate
选项
dsn
接受与Doctrine相同的格式,因此可以使用在.env
中配置的值namespace
生成实体的命名空间(默认App\Entity
)directory
生成实体的输出目录(默认src/Entity
)collection-interface
用于生成实体中集合类型的接口名称(默认\Doctrine\Common\Collections\Collection
)collection-implementation
(默认\Doctrine\Common\Collections\ArrayCollection
)
使用来自.env文件的DSN
source .env bin/entity-generator entity-generator:generate --dsn $DATABASE_URL
实现
- 使用
SHOW CREATE TABLE
从现有数据库生成映射。 - 使用Twig模板渲染实体类。
限制
- 仅提供基于
\PDO
的驱动程序和适用于类似MySQL的sql方言的映射器。 - (尚未)未实现(唯一)索引的注解
ManyToMany
关系尚未支持(《动机》)- 不支持Doctrine自定义类型
开放问题
- 在
xyx_id
与外键和字段xyx
(都变为xyz
)之间存在命名冲突 - 在一张表到另一张表的多个外键之间存在命名冲突(《
xyz.abc_1_id
和xyz.abc_2_id
都变为xyz.abcs
》) - 尚未实现Blobs