Guzzle uses RingPHP handlers to send HTTP requests over the wire. RingPHP provides a low-level library that can be used to “glue” Guzzle with any transport method you choose. By default, Guzzle utilizes cURL and PHP’s stream wrappers to send HTTP requests.
RingPHP handlers makes it extremely simple to integrate Guzzle with any HTTP transport. For example, you could quite easily bridge Guzzle and React to use Guzzle in React’s event loop.
Using a handler¶
You can change the handler used by a client using the
handler option in the
use GuzzleHttp\Client; use GuzzleHttp\Ring\Client\MockHandler; // Create a mock handler that always returns a 200 response. $handler = new MockHandler(['status' => 200]); // Configure to client to use the mock handler. $client = new Client(['handler' => $handler]);
At its core, handlers are simply PHP callables that accept a request array
and return a
GuzzleHttp\Ring\Future\FutureArrayInterface. This future array
can be used just like a normal PHP array, causing it to block, or you can use
the promise interface using the
then() method of the future. Guzzle hooks
up to the RingPHP project using a very simple bridge class