kingsquare/communibase-connector-php

这是PHP的Communibase连接器。

2.5.8 2019-05-20 09:53 UTC

README

Communibase

Scrutinizer Quality Score Travis CI Latest Stable Version License

这是一个适用于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提交到线上!