A general-purpose Communibase client for PHP projects, compatible with composer packaging-projects.
A connector may be constructed to do REST-calls on the Communibase API. The behaviour of this class should always Mimic the node.js-version, available at Github
The easiest way to install the connector is to use Composer and add the following to your project's composer.json file:
{
"require": {
"kingsquare/communibase-connector-php": "~1"
}
}
Now you should be able to install the package by updating your composer environment composer install
The connector is available and usable as follows:
require_once __DIR__ . '/../vendor/autoload.php'; // Autoload files using Composer autoload
use Communibase\Connector;
$cb = new Connector('<your api key here>');
$peopleNamedTim = $db->search('Person', array('firstName' => 'Tim'), array('limit' => 5));
print_r($peopleNamedTim);
"entityType" should be the Communibase Entitytype, e.g. "Person", "Invoice", etc. To see all the entity types your API key allows, see the API docs and insert your API key there.
"selectors" may be provided MongoDb style as array-definitions.
"params" is a key value store for e.g. fields, limit, page and/or sort . See API docs for more details. In addition to the nodeJS version of this paramater, the fields value may also be an array of fields. This will work more intuitively in PHP environments.
$cbc->search($entityType, $selector, $params): entity[];
$cbc->getAll($entityType, $params): entity[];
$cbc->getById($entityType, $id, $params): 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;
Whenever a function like getByIds()
or getByIds()
returns null, the property cbc->lastError
should be available containing an error message
An entity is an associative array containing a key/value store of data in Communibase.
E.g.
array(
'firstName' => 'Tim',
'addresses' => array(
array (
'street' => 'Breestraat'
...
), ...
)
)
Response data is an associative array in the following format:
array(
success => true|false
errors => array(
array(
'field' => '<string>',
'message' => '<string>'
)
)
)