Skip to content

RxPHP/RxHttp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Http Client for RxPHP

This library is a RxPHP wrapper for the ReactPHP's Http-client library. It allows you to make asynchronous http calls and emit the results through an RxPHP observable.

It uses the Voryx event-loop which behaves like the Javascript event-loop. ie. You don't need to start it.

##Installation

Install dependencies using composer

 $ php composer.phar require "rx/http" 

Usage

Get

 $source = \Rx\React\Http::get('https://www.example.com/'); $source->subscribe( function ($data) { echo $data, PHP_EOL; }, function (\Exception $e) { echo $e->getMessage(), PHP_EOL; }, function () { echo "completed", PHP_EOL; } ); 

Post

 $postData = json_encode(["test" => "data"]); $headers = ['Content-Type' => 'application/json']; $source = \Rx\React\Http::post('https://www.example.com/', $postData, $headers); $source->subscribe( function ($data) { echo $data, PHP_EOL; }, function (\Exception $e) { echo $e->getMessage(), PHP_EOL; }, function () { echo "completed", PHP_EOL; } ); 

Multiple Asynchronous Requests

$imageTypes = ["png", "jpeg", "webp"]; $images = \Rx\Observable::fromArray($imageTypes) ->flatMap(function ($type) { return \Rx\React\Http::get("http://httpbin.org/image/{$type}")->map(function ($image) use ($type) { return [$type => $image]; }); }); $images->subscribe( function ($data) { echo "Got Image: ", array_keys($data)[0], PHP_EOL; }, function (\Exception $e) { echo $e->getMessage(), PHP_EOL; }, function () { echo "completed", PHP_EOL; } ); 

For more information, see the examples.

About

Http Client for RxPHP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages