Skip to content

godmodelabs/flora-client-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flora PHP client

Easily access Flora based APIs.

$client = new \Flora\Client('http://api.example.com/');
$response = $client->execute([
    'resource'  => 'foo',
    'select'    => 'id,name'
]);

Raw responses

Return PSR-7 response object (e.g. to handle binary data).

$client = new \Flora\Client('http://api.example.com/');
$response = $client->executeRaw([
    'resource' => 'article',
    'id' => 1337,
    'action' => 'pdf',
]);

Asynchronous requests (using guzzlehttp/promises)

use GuzzleHttp\Promise;

$client = new \Flora\Client('http://api.example.com/');
try {
    $fooPromise = $client->executeAsync([
        'resource' => 'foo',
        'select' => 'id,name'
    ]);
    $barPromise = $client->executeAsync([
        'resource' => 'bar',
        'select' => 'id,name'
    ]);
    
    [$fooResponse, $barResponse] = Promise\Utils::unwrap([$fooPromise, $barPromise]);
    // process responses...
} catch (Throwable $e) {
    echo $e->getMessage(), PHP_EOL;
}

Parallel requests

Simple interface for simultaneously executing multiple API requests. Basically hides complexity from example above.

$client = new \Flora\Client('http://api.example.com/');
try {
    [$fooResponse, $barResponse] = $client->executeParallel([
        ['resource' => 'foo', 'select' => 'id,name'],
        ['resource' => 'bar', 'select' => 'id,name']
    ]);
    // process responses...
} catch (Throwable $e) {
    echo $e->getMessage(), PHP_EOL;
}