rayswoole/think-orm
Composer 安装命令:
composer require rayswoole/think-orm
包简介
think-orm协程化版本, 仅在swoole协程环境使用
关键字:
README 文档
README
fork in ThinkORM
基于PHP7.1+ 和PDO实现的ORM,支持多数据库,2.0版本主要特性包括:
- 基于PDO和PHP强类型实现
- 支持原生查询和查询构造器
- 自动参数绑定和预查询
- 简洁易用的查询功能
- 强大灵活的模型用法
- 支持预载入关联查询和延迟关联查询
- 支持多数据库及动态切换
支持MongoDb- 支持分布式及事务
- 支持断点重连
- 支持
JSON查询 - 支持数据库日志
- 支持
PSR-16缓存及PSR-3日志规范
安装
composer require rayswoole/think-orm
文档
连接池配置
可以在onStart直接配置
每个worker进程都会生成同等配置的进程池, 请根据worker数量动态调整
//初始化连接配置 $dbConfig = new \rayswoole\orm\pool\DbPoolConfig(); //设置最小连接数 $dbConfig->withMin(5); //设置最大连接数 $dbConfig->withMax(20); //设置定时器执行频率(毫秒),创建最小进程、回收空闲进程 $dbConfig->withIntervalTime(15*1000) //设置连接可空闲时间 $dbConfig->withIdleTime(10) //获取连接池对象超时时间, 如果连接池占满在指定时间无法释放新的连接, 将输出Exception, 需要自行捕获 $dbConfig->withTimeout(3.0) //数据库配置, 参考https://www.kancloud.cn/manual/think-orm/1257999 $dbConfig->withExtraConf('数据库数组结构') //初始化连接池 \rayswoole\orm\facade\Db::init($dbConfig); //可设置项 //设置log日志,必须继承Psr\Log\LoggerInterface接口(orm自带) Db::setLog($Logger); //设置缓存,用于ORM连贯操作`$Db->cache()`,必须继承Psr\SimpleCache\CacheInterface接口 Db::setCache($Cache);
使用
use rayswoole\orm\facade // table方法必须指定完整的数据表名 Db::table('think_user')->where('id', 1)->find(); // 如果设置了数据表前缀(prefix)参数的话 也可以使用 Db::name('user')->where('id', 1)->find(); //注意: 非协程环境使用必须主动释放连接(协程环境内会自动释放) Db::close(); // 模型写法 use rayswoole\orm class userModel extends Model{ protected $name = 'test'; //指定数据库,不指定会自动设置为test_model } $model = new userModel(); $model->where('id', 1)->find();
具体语法详细参考 ThinkORM开发指南
rayswoole/think-orm 适用场景与选型建议
rayswoole/think-orm 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 160 次下载、GitHub Stars 达 2, 最近一次更新时间为 2020 年 08 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「database」 「orm」 「coroutine」 「swoole」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 rayswoole/think-orm 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 rayswoole/think-orm 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 rayswoole/think-orm 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Dibi is Database Abstraction Library for PHP
Asynchronous coroutines for PHP 7.
Kinikit - PHP Application development framework MVC component
Store your language lines in the database, yaml or other sources
PHP Database ORM for Symfony1. Do NOT use for new projects: please move to a newest Symfony release and Doctrine2
A package for automatically encrypting and decrypting Eloquent attributes in Laravel 5.5+, based on configuration settings.
统计信息
- 总下载量: 160
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2020-08-11