kingsquare / communibase-connector-php
这是PHP的Communibase连接器。
Requires
- php: >=5.5
- ext-json: *
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- phpunit/phpunit: ~4
README
这是一个适用于PHP项目的通用Communibase客户端,兼容composer打包项目。
可以构建一个连接器来在Communibase API上执行REST调用。
此包的行为应始终模仿node版本
使用方法
安装连接器最简单的方法是使用Composer
composer require kingsquare/communibase-connector-php
现在你应该可以通过更新你的composer环境来安装此包 composer install
连接器可用并可按以下方式使用
require_once __DIR__ . '/../vendor/autoload.php'; // Autoload files using Composer autoload use Communibase\Connector; $cb = new Connector('<your api key here>'); $peopleNamedTim = $cb->search('Person', ['firstName' => 'Tim'], ['limit' => 5]); print_r($peopleNamedTim);
API
"entityType"应该是Communibase实体类型,例如"Person"、"Invoice"等。要查看API密钥允许的所有实体类型,请参阅API文档并在此处插入您的API密钥。
"selectors"可以提供MongoDb风格作为数组定义。
"params"是一个键值存储,例如字段、限制、页面和/或排序。有关详细信息,请参阅API文档。除了nodeJS版本的此参数外,字段值也可以是字段的数组。这在PHP环境中将更加直观。
$cbc->search($entityType, $selector, $params): entity[]; $cbc->getAll($entityType, $params): entity[]; $cbc->getById($entityType, $id, $params, $version): entity; $cbc->getByIds($entityType, $ids, $params): entity[]; $cbc->getId($entityType, $selector): string; $cbc->getIds($entityType, $selector, $params): null|string[]; $cbc->getByRef($ref[, $parent]): entity $cbc->getTemplate($entityType): array; $cbc->getHistory($entityType, $id): array; $cbc->update($entityType, $properties): responseData; $cbc->destroy($entityType, $id): responseData; $cbc->generateId(): string - Generate a new, fresh Communibase ID //Use for Files only to get a string with the binary contents $cbc->getBinary(id): string;
每当函数如getByIds()
或getByIds()
返回null时,应可访问属性cbc->lastError
,其中包含错误消息
实体
实体是一个关联数组,包含Communibase中的数据键值存储。
例如。
[ 'firstName' => 'Tim', 'addresses' => [ [ 'street' => 'Breestraat', // ... ], // ... ] ]
错误处理
当出现问题时代码可能抛出错误。默认错误处理如下
try { $person = $cbc->getById('Person', '_PERSON_ID_'); } catch (\Communibase\Exception $e) { echo $e->getMessage(); }
一种特殊类型的错误处理涉及已发布文档的“有效性”错误。
try { $person = $cbc->update('Person', [...]); } catch (\Communibase\Exception $e) { //get an array of errors, per property: // [ // [ // 'field' => '<string>', // 'message' => '<string>' // ] // ] print_r($e->getErrors()); }
查询日志
还可以向连接器添加查询日志器。
为调试/开发目的堆栈查询数据
$connector->setQueryLogger(new DebugStack());
通过$connector->getQueryLogger()->queries
运行后可用的查询数据
为调试/开发目的输出查询(适用于cli)
$connector->setQueryLogger(new EchoQueryLogger());
将每个查询输出到当前输出流。
创建自己的查询日志
$connector->setQueryLogger(new MyOwnQueryLogger());
MyOwnQueryLogger
实现了QueryLogger
并对数据进行某些操作..可能的数据库/API调用
贡献/错误报告
如果你在使用此应用程序并且有问题和/或反馈,请在GitHub上提交问题。
我们也欢迎新功能和代码,所以请不要犹豫,将你的pull request提交到线上!