byjg / micro-orm
一个用于创建非常简单的解耦ORM(sqlite、mysql、postgres、sqlserver)的微框架
4.9.4
2024-09-04 17:13 UTC
Requires
- php: >=7.4
- ext-json: *
- byjg/anydataset-db: 4.9.*
Requires (Dev)
- phpunit/phpunit: 5.7.*|7.4.*|^9.6
Suggests
- ext-curl: *
- ext-pdo_mysql: *
README
这是一个用于创建非常简单的解耦ORM的微框架。该库旨在非常小巧且易于使用;
主要特性
- 可以与任何DTO、实体、模型或具有公共属性或getter和setter的任何类一起使用
- 存储库支持多种数据源:MySql、Sqlite、Postgres、MySQL、Oracle(参见byjg/anydataset)
- 使用Mapper类映射实体和存储库
- 小巧且易于使用
架构
以下是关键组件
┌──────────────────────────┐
│ Repository │ ┌─────────────────────┐
│ │ ┌────│ Model │
│ │ │ └─────────────────────┘
│ ┌───────────────┴─────┐ │ │
│ │ Mapper │───┤ │
│ └───────────────┬─────┘ │ │
│ │ │ │ ┌─────────────────────┐
│ │ │ └────│ FieldMapping │
│ │ │ └─────────────────────┘
│ │ │
│ ┌───────────────┴─────┐
│ │ Query │
│ └───────────────┬─────┘
│ │
│ ┌───────────────┴─────┐
│ │ DbDriverInterface │───────────────┐
│ └───────────────┬─────┘ │
│ │ │
└──────────────────────────┘ .─────────.
│ │
│`─────────'│
│ │
│ DB │
│ │
│ │
`─────────'
- 模型是一个用于从数据库检索或保存数据的get/set类
- Mapper将创建定义,以将模型映射到数据库。
- 查询将使用Mapper根据DbDriverInterface准备对数据库的查询
- DbDriverIntarce是数据库连接的实现。
- 存储库将所有这些组合在一起
基础
高级主题
安装
只需输入
composer require "byjg/micro-orm"
运行测试
./vendor/bin/phpunit