为InfluxDB时序数据库引入ORM,结束了没有InfluxDBORM的时代。常用操作一键切换,支持php-fpm、Swoole环境,轻松一键切换。可以用在所有传统框架,所有Swoole框架!码云:https://gitee.com/yurunsoft/influxdb-ormGithub:https://github.com/Yurunsoft/influxdb-orm更新日志新增测试用例新增travis自动化测试改进注释和参数返回值类型修复ResultSet->getScalar()默认值错误Querybuilder查询时区恢复添加模型测试和queryer测试修复或条件问题QueryBuilder支持设置timezone()添加对日期时间格式化模型的支持添加toArray()方法作为@Value注解添加字段类型属性Composer这个项目可以使用composer安装,遵循psr-4自动加载规则,在你的composer.json中添加如下内容:{"require":{"yurunsoft/influxdb-orm":"^1.1.0"}}然后执行composerupdate进行安装。使用Swoole支持在WorkerStart事件中执行:\Yurun\Util\YurunHttp::setDefaultHandler(\Yurun\Util\YurunHttp\Handler\Swoole::class);定义模型实体可参考example/test.phptime;}/***设置时间的值**@paramint|string$time**@returnself*/publicfunctionsetTime($time){$this->time=$time;返回$这个;}/***获取id的值**@returnint*/publicfunctiongetId(){return$this->id;}/***设置id的值**@paramint$id**@returnself*/publicfunctionsetId(int$id){$this->id=$id;返回$这个;}/***获取name的值**@returnstring*/publicfunctiongetName(){return$this->name;}/***设置name的值**@paramstring$name**@returnself*/publicfunctionsetName(string$name){$this->name=$name;返回$这个;}/***获取value的值**@returnint*/publicfunctiongetValue(){return$this->value;}/***设置value的值**@paramint$value**@returnself*/publicfunctionsetValue(int$value){$this->value=$value;返回$这个;}}datawriteuseYurun\InfluxDB\ORM\InfluxDBManager;//设置客户端名称为test,默认数据库为db_testInfluxDBManager::setClientConfig('test','127.0.0.1',8086,'','',false,false,0,0,'db_test');//设置默认数据库为testInfluxDBManager::setDefaultClientName('test');//写入数据,支持对象和数组$r=A::write([A::创建(mt_rand(1,999999),time(),time(),mt_rand(1,100)),['id'=>1,'name'=>'aaa','time'=>time(),'值'=>mt_rand(1,100)],]);变量转储($r);数据查询//获取查询器$query=A::query();//常用的用法,反正就是set,不多说了$query->field('id,name')->from('table')->where(['id'=>1])->where('id','=',1)->orWhere('id','=',1)->order('time','desc')->group('id')->limit(0,10);//查询结果,用法同InfluxDB官方客户端$resultSet=$query->select();//查询结果到模型,适合查询记录而不是统计数据$model=$resultSet->getModel(A::class);//查询结果到模型列表,适合查询记录而不是统计数据$list=$resultSet->getModelList(A::class);modelshortcutQuery适用于查询记录而不是统计数据useYurun\InfluxDB\ORM\Query\QueryBuilder;//查询结果传递模型,适用于查询记录而不是统计数据$model=A::find(function(QueryBuilder$query){$query->where('id','=',1)->limit(1);});//查询结果到模型列表,适用于查询记录而不是统计数据$list=A::select(function(QueryBuilder$query){$query->where('id','=',1)->limit(2);});获取单个字段值$count=A::query()->field('count(value)')->select()->getScalar();
