influxdb-orm 时序数据库 InfluxDB 的 ORM开源项目

我要开发同款
匿名用户2019年12月13日
100阅读

技术信息

开源地址
https://gitee.com/yurunsoft/influxdb-orm
授权协议
MIT

作品详情

ifluxdb-orm是一个用于IfluxDB时序数据库的ORM,终结没有IfluxDBORM的时代。

常用操作一把梭,支持php-fpm、Swoole环境,一键轻松切换。

可以用于所有传统框架、所有Swoole框架中!

Composer

本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 composer.jso 中加入下面的内容:

{"require":{"yurusoft/ifluxdb-orm":"^1.0.0"}}

然后执行 composerupdate 安装。

使用Swoole支持

在 WorkerStart 事件中执行:

\Yuru\Util\YuruHttp::setDefaultHadler(\Yuru\Util\YuruHttp\Hadler\Swoole::class);定义模型

具体可参考 example/test.php

<?phpamespaceYuru\IfluxDB\ORM\Example\Model;useYuru\IfluxDB\ORM\BaseModel;useYuru\IfluxDB\ORM\Aotatio\Tag;useYuru\IfluxDB\ORM\Aotatio\Field;useYuru\IfluxDB\ORM\Aotatio\Value;useYuru\IfluxDB\ORM\Aotatio\Timestamp;useYuru\IfluxDB\ORM\Aotatio\Measuremet;/***@Measuremet(ame="aaa")*/classAextedsBaseModel{/***@Tag(ame="id",type="it")**@varit*/private$id;/***@Field(ame="ame",type="strig")**@varstrig*/private$ame;/***@Timestamp(precisio="s")**@varit|strig*/private$time;/***@Value**@varit*/private$value;publicstaticfuctiocreate($id,$ame,$time,$value){returewstatic(compact('id','ame','time','value'));}/***Getthevalueoftime**@returit|strig*/publicfuctiogetTime(){retur$this->time;}/***Setthevalueoftime**@paramit|strig$time**@returself*/publicfuctiosetTime($time){$this->time=$time;retur$this;}/***Getthevalueofid**@returit*/publicfuctiogetId(){retur$this->id;}/***Setthevalueofid**@paramit$id**@returself*/publicfuctiosetId(it$id){$this->id=$id;retur$this;}/***Getthevalueofame**@returstrig*/publicfuctiogetName(){retur$this->ame;}/***Setthevalueofame**@paramstrig$ame**@returself*/publicfuctiosetName(strig$ame){$this->ame=$ame;retur$this;}/***Getthevalueofvalue**@returit*/publicfuctiogetValue(){retur$this->value;}/***Setthevalueofvalue**@paramit$value**@returself*/publicfuctiosetValue(it$value){$this->value=$value;retur$this;}}数据写入useYuru\IfluxDB\ORM\IfluxDBMaager;//设置客户端名称为test,默认数据库为db_testIfluxDBMaager::setClietCofig('test','127.0.0.1',8086,'','',false,false,0,0,'db_test');//设置默认数据库为testIfluxDBMaager::setDefaultClietName('test');//写入数据,支持对象和数组$r=A::write([A::create(mt_rad(1,999999),time(),time(),mt_rad(1,100)),['id'=>1,'ame'=>'aaa','time'=>time(),'value'=>mt_rad(1,100)],]);var_dump($r);数据查询//获取查询器$query=A::query();//常见用法,反正就那一套,不多说了$query->field('id,ame')->from('table')->where(['id'=>1])->where('id','=',1)->orWhere('id','=',1)->order('time','desc')->group('id')->limit(0,10);//查询结果,与IfluxDB官方客户端一样用法$resultSet=$query->select();//查询结果转模型,适合用于查询记录而不是统计数据$model=$resultSet->getModel(A::class);//查询结果转模型列表,适合用于查询记录而不是统计数据$list=$resultSet->getModelList(A::class);模型快捷查询

适合用于查询记录而不是统计数据

useYuru\IfluxDB\ORM\Query\QueryBuilder;//查询结果转模型,适合用于查询记录而不是统计数据$model=A::fid(fuctio(QueryBuilder$query){$query->where('id','=',1)->limit(1);});//查询结果转模型列表,适合用于查询记录而不是统计数据$list=A::select(fuctio(QueryBuilder$query){$query->where('id','=',1)->limit(2);});获取单个字段值$cout=A::query()->field('cout(value)')->select()->getScalar();

功能介绍

influxdb-orm 是一个用于 InfluxDB 时序数据库的 ORM,终结没有 InfluxDB ORM 的时代。 常用操作一把梭,支持 php-fpm、Swoole 环境,一键轻松切换...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论