readdle / fqorm
简单ORM
0.2.0
2022-05-09 16:08 UTC
Requires
- php: >=7.4
- readdle/fqdb: ^4.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.3
- phpstan/phpstan: ^1.2
- phpunit/phpunit: ^9
README
非常简单的ORM层,基于数据映射模式。
一些关键设计原则
- 有两种类型的类:映射器和实体
- 实体包含数据;它们有属性,可能包含格式化方法、验证等。
- 映射器可以读取和写入数据库中的实体
- 有两个抽象类AbstractMapper和AbstractMapperId,可用于快速创建自己的映射器。
- 可以为映射器创建任何方法,但通常我们使用
save
、delete
、findByID
、findByWhere
等。
不是规则
这些不是规则,但事情发生得非常简单
- 每个实体都有自己的映射器
- 每个映射器将实体映射到特定的数据库表
- 实体的结构类似于特定的数据库表
如果你以不同的方式做事,现有的抽象类不会帮到你。
如何创建实体和映射器
请参阅 ExampleIdEntity.php 和 ExampleIdMapper.php。
- 实体仅有一些属性
- 映射器扩展
AbstractMapper
或AbstractMapperID
并重写方法mapperTableName
、mapperEntityClass
- 在另一个重写方法
createFieldMapping
中,您必须描述所有字段的映射 - 对于
AbstractMapper
子类,您必须在createFieldMappingUnique
中描述唯一(键)字段。类AbstractMapperID
已经为id
做了这件事。 - 实现带有您特定实体类型的save、delete、find...方法。您可以使用父类中现有的无类型*方法。