byjg/micro-orm

一个用于创建非常简单的解耦ORM(sqlite、mysql、postgres、sqlserver)的微框架

资助包维护!
byjg

4.9.4 2024-09-04 17:13 UTC

This package is auto-updated.

Last update: 2024-09-17 19:47:38 UTC


README

Build Status Opensource ByJG GitHub source GitHub license GitHub release

这是一个用于创建非常简单的解耦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

相关项目

依赖

开源ByJG