easy-swoole / orm

31 stars 27 forks source link

Easyswoole-ORM

项目背景

由于swoole协程环境不可以直接使用php-fpm的orm组件(由于存在静态全局变量、连接层没有做好协程处理,无法协程安全地使用)

所以easyswoole花费大量时间精力维护orm组件,连贯操作等功能设计借鉴TP5.0的ORM组件。

有疑问、功能建议、bug反馈请在QQ群、github issue、直接联系宣言提交。

问题反馈模板

一个完整的提问需要包含以下几点:

安装

composer require easyswoole/orm

RFC

1、Model Invoke

Model::invoke()->where(col,val)->get()
Model::invoke(function(Model $m){
    $m->where(col,val)
})->get()

2、Model Where

$model = Model::create()

//$op => = , > , < , != , in , between
$model->where(col1,val1,$op)->get()
$model->where(col1,100,">")->get()
$model->where(col1,100,"<")->get()
$model->where(col1,100,"=")->get()
$model->where(col1,[1,100],"in")->get()
$model->where(col1,[1,100],"between")->get()

$model->where(col1,val1)->where(col2,val2)->get()
=> select * from where col1 = val1 and col2 = val2 limit 1

// 数组形式传参 仅支持此种格式数组
$array1 = [
    ['user', 'easyswoole', '='],
    ['age', '18', '!='],
];
$array1 = [
    ['creaet_time', '2021-12-29 14:47:32', '='],
];
$model->where($array1)->where($array2)->get()

// TODO 兼容 原生sql

官网文档

http://www.easyswoole.com/Cn/Components/Orm/changeLog.html

单元测试

 ./vendor/bin/co-phpunit tests

推荐使用mysql著名的employees样例库进行测试和学习mysql: https://github.com/datacharmer/test_db

主要项目负责人

参与贡献方式

开源协议

Apache-2.0

功能介绍

设计层级

设计层级