Skip to content

activecollab/promises

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Promises Library

Build Status

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);

// Print promise signature
$promise = $promises->create();

print $promise->getSinature() . "\n";
print (string) $promise . "\n"; // __toString() is available

// Default promise status
$promise = $promises->create();

$promises->isFulfilled($promise); // false
$promises->isRejected($promise);  // false
$promises->isSettled($promise);   // false

// Promise fulfillment
$promise = $promises->create();

$promises->fulfill($promise);

$promises->isFulfilled($promise); // true
$promises->isRejected($promise);  // false
$promises->isSettled($promise);   // true

// Promise rejection
$promise = $promises->create();

$promises->reject($promise);

$promises->isFulfilled($promise); // false
$promises->isRejected($promise);  // true
$promises->isSettled($promise);   // true

Running tests

To run tests, cd to this directory and run:

phpunit -c test

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages