Buzz Adapter (deprecated)
This adapter only implements the PHP-HTTP synchronous interface. This interface has been superseded by PSR-18, which the Buzz HTTP client implements directly.
Installation
To install the Buzz adapter, which will also install Buzz itself (if it was not yet included in your project), run:
$ composer require php-http/buzz-adapter
Usage
Begin by creating a Buzz client, you may pass any listener or configuration parameters to it like:
use Buzz\Browser;
use Buzz\Client\Curl;
use Buzz\Listener\CookieListener;
$browser = new Browser();
$client = new Curl();
$client->setMaxRedirects(0);
$browser->setClient($client);
// Create CookieListener
$listener = new CookieListener();
$browser->addListener($listener);
Then create the adapter:
use Http\Adapter\Buzz\Client as BuzzAdapter;
use Http\Message\MessageFactory\GuzzleMessageFactory;
$adapter = new BuzzAdapter($browser, new GuzzleMessageFactory());
Or relying on discovery:
use Http\Adapter\Buzz\Client as BuzzAdapter;
$adapter = new BuzzAdapter($browser);
Be Aware
This adapter violates the Liskov substitution principle in a rare edge case. When the adapter is configured to use
Buzz’ Curl client, it does not send request bodies for request methods such as GET, HEAD and TRACE. A RequestException
will be thrown if this ever happens.
If you need GET request with a body (e.g. for Elasticsearch) you need to use the Buzz FileGetContents client or choose a different HTTPlug client like Guzzle 6.
Further reading
Use plugins to customize the way HTTP requests are sent and responses processed by following redirects, adding Authentication or Cookie headers and more.
Learn how you can decouple your code from any PSR-7 implementation by using the HTTP factories.