2014-04-11 14:58:24 +00:00
|
|
|
Guzzle, PHP HTTP client and webservice framework
|
|
|
|
================================================
|
|
|
|
|
|
|
|
[](http://travis-ci.org/guzzle/guzzle)
|
|
|
|
|
2014-10-16 09:54:33 +00:00
|
|
|
Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and
|
|
|
|
trivial to integrate with web services.
|
|
|
|
|
|
|
|
- Manages things like persistent connections, represents query strings as
|
|
|
|
collections, simplifies sending streaming POST requests with fields and
|
|
|
|
files, and abstracts away the underlying HTTP transport layer.
|
|
|
|
- Can send both synchronous and asynchronous requests using the same interface
|
|
|
|
without requiring a dependency on a specific event loop.
|
|
|
|
- Pluggable HTTP adapters allows Guzzle to integrate with any method you choose
|
|
|
|
for sending HTTP requests over the wire (e.g., cURL, sockets, PHP's stream
|
|
|
|
wrapper, non-blocking event loops like ReactPHP.
|
|
|
|
- Guzzle makes it so that you no longer need to fool around with cURL options,
|
|
|
|
stream contexts, or sockets.
|
2014-04-11 14:58:24 +00:00
|
|
|
|
|
|
|
```php
|
|
|
|
$client = new GuzzleHttp\Client();
|
|
|
|
$response = $client->get('http://guzzlephp.org');
|
|
|
|
$res = $client->get('https://api.github.com/user', ['auth' => ['user', 'pass']]);
|
|
|
|
echo $res->getStatusCode();
|
2014-10-16 09:54:33 +00:00
|
|
|
// "200"
|
2014-04-11 14:58:24 +00:00
|
|
|
echo $res->getHeader('content-type');
|
|
|
|
// 'application/json; charset=utf8'
|
|
|
|
echo $res->getBody();
|
|
|
|
// {"type":"User"...'
|
|
|
|
var_export($res->json());
|
|
|
|
// Outputs the JSON decoded data
|
|
|
|
|
2014-10-16 09:54:33 +00:00
|
|
|
// Send an asynchronous request.
|
|
|
|
$req = $client->createRequest('GET', 'http://httpbin.org', ['future' => true]);
|
|
|
|
$client->send($req)->then(function ($response) {
|
|
|
|
echo 'I completed! ' . $response;
|
|
|
|
});
|
|
|
|
```
|
2014-04-11 14:58:24 +00:00
|
|
|
|
|
|
|
Get more information and answers with the
|
|
|
|
[Documentation](http://guzzlephp.org/),
|
|
|
|
[Forums](https://groups.google.com/forum/?hl=en#!forum/guzzle),
|
2014-10-16 09:54:33 +00:00
|
|
|
and [Gitter](https://gitter.im/guzzle/guzzle).
|
2014-04-11 14:58:24 +00:00
|
|
|
|
|
|
|
### Installing via Composer
|
|
|
|
|
|
|
|
The recommended way to install Guzzle is through
|
|
|
|
[Composer](http://getcomposer.org).
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# Install Composer
|
|
|
|
curl -sS https://getcomposer.org/installer | php
|
|
|
|
```
|
|
|
|
|
2014-11-06 08:49:02 +00:00
|
|
|
Next, run the Composer command to install the latest stable version of Guzzle:
|
2014-04-11 14:58:24 +00:00
|
|
|
|
2014-11-06 08:49:02 +00:00
|
|
|
```bash
|
|
|
|
composer require guzzlehttp/guzzle
|
2014-04-11 14:58:24 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
After installing, you need to require Composer's autoloader:
|
|
|
|
|
|
|
|
```php
|
|
|
|
require 'vendor/autoload.php';
|
|
|
|
```
|
|
|
|
|
|
|
|
### Documentation
|
|
|
|
|
|
|
|
More information can be found in the online documentation at
|
|
|
|
http://guzzlephp.org/.
|