Promises Library

Purpose of this library is to provide persisted server side promises. We built it to power our multi-service system, where one service issues a job requests and expect that antoher service executes it (and fulfulls or rejects a promise that it gives when it accepts a job).
Example:
<?php
use ActiveCollab\DatabaseConnection\Connection\MysqliConnection;
$mysqli_link = new \MySQLi('localhost', 'root', '', 'activecollab_promises_test');
if ($mysqli_link->connect_error) {
throw new \RuntimeException('Failed to connect to database. MySQL said: ' . $mysqli_link->connect_error);
}
$mysqli_connection = new MysqliConnection($mysqli_link);
$promises = new Promises($this->connection);
$promise = $promises->create();
print $promise->getSinature() . "\n";
print (string) $promise . "\n";
$promise = $promises->create();
$promises->isFulfilled($promise);
$promises->isRejected($promise);
$promises->isSettled($promise);
$promise = $promises->create();
$promises->fulfill($promise);
$promises->isFulfilled($promise);
$promises->isRejected($promise);
$promises->isSettled($promise);
$promise = $promises->create();
$promises->reject($promise);
$promises->isFulfilled($promise);
$promises->isRejected($promise);
$promises->isSettled($promise);
Running tests
To run tests, cd to this directory and run:
phpunit -c test