easyswoole / orm
php stander lib
Installs: 80 027
Dependents: 24
Suggesters: 0
Security: 0
Stars: 30
Watchers: 6
Forks: 27
Open Issues: 9
Requires
- php: >=7.1.0
- ext-json: *
- ext-swoole: >=4.4.7
- easyswoole/component: ^2.0
- easyswoole/ddl: ^1.0
- easyswoole/mysqli: ^2.0
- easyswoole/pool: ^1.0
Requires (Dev)
- easyswoole/phpunit: ^1.0
- easyswoole/swoole-ide-helper: ^1.0
- 2.x-dev
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.33
- 1.4.32
- 1.4.31
- 1.4.30
- 1.4.29
- 1.4.28
- 1.4.27
- 1.4.26
- 1.4.25
- 1.4.24
- 1.4.23
- 1.4.22
- 1.4.21
- 1.4.20
- 1.4.19
- 1.4.18
- 1.4.17
- 1.4.16
- 1.4.15
- 1.4.14
- 1.4.13
- 1.4.12
- 1.4.11
- 1.4.10
- 1.4.9
- 1.4.8
- 1.4.7
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.x-dev
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.13
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-master
This package is auto-updated.
Last update: 2024-12-19 07:46:09 UTC
README
Easyswoole-ORM
项目背景
由于swoole协程环境不可以直接使用php-fpm的orm组件(由于存在静态全局变量、连接层没有做好协程处理,无法协程安全地使用)
所以easyswoole花费大量时间精力维护orm组件,连贯操作等功能设计借鉴TP5.0的ORM组件。
有疑问、功能建议、bug反馈请在QQ群、github issue、直接联系宣言提交。
问题反馈模板
一个完整的提问需要包含以下几点:
- 1.出现了问题,怀疑orm组件的bug,需要先行编写最小测试。(比如一个新的类,单独只调用一个功能,都出问题了,排除其他因素影响)
- 2.用文字描述出现的问题,附带运行和调试的参数截图
- 3.附带第一步最小测试复现脚本
安装
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
主要项目负责人
参与贡献方式
- 有实际生产使用的,提出升级迭代建议
- 使用过程中遇到问题,并且查看文档,基本排除个人原因导致的问题,怀疑bug,及时反馈
- 参与orm组件的代码维护、功能升级
- 参与orm组件的文档维护(也就是加入easyswoole文档维护团队)
开源协议
Apache-2.0
功能介绍
- 基于easyswoole/mysqli组件,承当构造层职责。
- 基于easyswoole/pool组件,承当基础连接池。
- 支持执行自定义sql语句、构造器查询。
- 支持事务,DbManager连接管理器也可承当事务管理器的职责。
- 支持关联查询。
- 支持多数据库配置,读写分离。
- 便捷的连贯操作、聚合操作。