toyokumo/kintone-query-builder
Composer 安装命令:
composer require toyokumo/kintone-query-builder
包简介
kintone query builder
README 文档
README
Query builder for Kintone REST API in PHP. Kintone query builder helps you to make a parameter string query of GET /records.json.
usage
installation
composer require toyokumo/kintone-query-builder
basic
<?php use KintoneQueryBuilder\KintoneQueryBuilder; use KintoneQueryBuilder\KintoneQueryExpr; // example // all operators(=, !=, like, not like, <, >, <=, >=, in, not in) are supported (new KintoneQueryBuilder())->where('name', '=', 'hoge')->build(); // => 'name = "hoge"' (new KintoneQueryBuilder()) ->where('favorite', 'in', ['apple', 'banana', 'orange']) ->build(); // => 'favorite in ("apple","banana","orange")' (new KintoneQueryBuilder()) ->where('age', '>', 10) ->andWhere('name', 'like', 'banana') // you can write 'where' instead here (where = andWhere). ->andWhere('name', '!=', 'banana') ->build(); // => 'age > 10 and name like "banana" and name != "banana"' (new KintoneQueryBuilder()) ->where('age', '>', 20) ->orderBy('$id', 'desc') ->limit(50) ->build(); // => 'age > 20 order by $id desc limit 50' (new KintoneQueryBuilder()) // for nested query, pass KintoneQueryExpr to $builder->where. ->where( (new KintoneQueryExpr()) ->where('a', '<', 1) ->andWhere('b', '<', 1) )->orWhere( (new KintoneQueryExpr()) ->where('c', '<', 1) ->andWhere('d', '<', 1) )->build(); // => '(a < 1 and b < 1) or (c < 1 and d < 1)' (new KintoneQueryBuilder())->where('x', '=','ho"ge')->build() // escape double quote // => 'x = "ho\"ge"'
example: fetch all records from kintone API
You can't get more than 501 records because of kintone API restriction. In that situation, kintone query builder is very useful.
<?php use KintoneQueryBuilder\KintoneQueryBuilder; $builder = (new KintoneQueryBuilder())->where(...); $records = $api->fetch($builder.build()); $offset = 0; $records_max = 500; // max records you can get at once (kintone API restriction) while(!\empty($records)) { // do something $offset+=$records_max; $records = $api->fetch($builder->offset($offset)->build()); }
Precautions: methods are mutable methods
Note that $builder->where(...) modifies $builder and returns itself instead of returning a new copied builder object.
This may cause unexpected behaivor like this.
<?php $builder = (new KintoneQueryBuilder()); $q0 = $builder->where('x', '=', 1)->build(); // $q0 = 'x = 1' $q1 = $builder->where('y', '=', 1)->bulid(); // $q1 = 'x = 1 and y = 1', not 'y = 1'
If you want $builder to return 'y=1', you should define a factory function (or a factory class).
<?php function getBaseBuilder() { return (new KintoneQueryBuilder())->where('x', '=', 1); } $q0 = getBaseBuilder()->build(); $q1 = getBaseBuilder()->where('y', '=', 1)->build(); $q2 = getBaseBuilder()->bulid(); // you can get 'x = 1' again
This pattern is useful if you want to use the same builder again to build a little bit different query.
how to contribute
Feel free to send us pull requests.
setup
git clone git@github.com:cstap/kintone-query-builder.git
composer install
composer test
format
Install prettier and run composer format.
License
toyokumo/kintone-query-builder 适用场景与选型建议
toyokumo/kintone-query-builder 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 29.44k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 04 月 23 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 toyokumo/kintone-query-builder 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 toyokumo/kintone-query-builder 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 29.44k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-04-23