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();
评论