Security update to Drupal 8.4.6
[yaffs-website] / vendor / guzzlehttp / guzzle / README.md
1 Guzzle, PHP HTTP client
2 =======================
3
4 [![Latest Version](https://img.shields.io/github/release/guzzle/guzzle.svg?style=flat-square)](https://github.com/guzzle/guzzle/releases)
5 [![Build Status](https://img.shields.io/travis/guzzle/guzzle.svg?style=flat-square)](https://travis-ci.org/guzzle/guzzle)
6 [![Total Downloads](https://img.shields.io/packagist/dt/guzzlehttp/guzzle.svg?style=flat-square)](https://packagist.org/packages/guzzlehttp/guzzle)
7
8 Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and
9 trivial to integrate with web services.
10
11 - Simple interface for building query strings, POST requests, streaming large
12   uploads, streaming large downloads, using HTTP cookies, uploading JSON data,
13   etc...
14 - Can send both synchronous and asynchronous requests using the same interface.
15 - Uses PSR-7 interfaces for requests, responses, and streams. This allows you
16   to utilize other PSR-7 compatible libraries with Guzzle.
17 - Abstracts away the underlying HTTP transport, allowing you to write
18   environment and transport agnostic code; i.e., no hard dependency on cURL,
19   PHP streams, sockets, or non-blocking event loops.
20 - Middleware system allows you to augment and compose client behavior.
21
22 ```php
23 $client = new \GuzzleHttp\Client();
24 $res = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle');
25 echo $res->getStatusCode();
26 // 200
27 echo $res->getHeaderLine('content-type');
28 // 'application/json; charset=utf8'
29 echo $res->getBody();
30 // '{"id": 1420053, "name": "guzzle", ...}'
31
32 // Send an asynchronous request.
33 $request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
34 $promise = $client->sendAsync($request)->then(function ($response) {
35     echo 'I completed! ' . $response->getBody();
36 });
37 $promise->wait();
38 ```
39
40 ## Help and docs
41
42 - [Documentation](http://guzzlephp.org/)
43 - [Stack Overflow](http://stackoverflow.com/questions/tagged/guzzle)
44 - [Gitter](https://gitter.im/guzzle/guzzle)
45
46
47 ## Installing Guzzle
48
49 The recommended way to install Guzzle is through
50 [Composer](http://getcomposer.org).
51
52 ```bash
53 # Install Composer
54 curl -sS https://getcomposer.org/installer | php
55 ```
56
57 Next, run the Composer command to install the latest stable version of Guzzle:
58
59 ```bash
60 php composer.phar require guzzlehttp/guzzle
61 ```
62
63 After installing, you need to require Composer's autoloader:
64
65 ```php
66 require 'vendor/autoload.php';
67 ```
68
69 You can then later update Guzzle using composer:
70
71  ```bash
72 composer.phar update
73  ```
74
75
76 ## Version Guidance
77
78 | Version | Status     | Packagist           | Namespace    | Repo                | Docs                | PSR-7 | PHP Version |
79 |---------|------------|---------------------|--------------|---------------------|---------------------|-------|-------------|
80 | 3.x     | EOL        | `guzzle/guzzle`     | `Guzzle`     | [v3][guzzle-3-repo] | [v3][guzzle-3-docs] | No    | >= 5.3.3    |
81 | 4.x     | EOL        | `guzzlehttp/guzzle` | `GuzzleHttp` | [v4][guzzle-4-repo] | N/A                 | No    | >= 5.4      |
82 | 5.x     | Maintained | `guzzlehttp/guzzle` | `GuzzleHttp` | [v5][guzzle-5-repo] | [v5][guzzle-5-docs] | No    | >= 5.4      |
83 | 6.x     | Latest     | `guzzlehttp/guzzle` | `GuzzleHttp` | [v6][guzzle-6-repo] | [v6][guzzle-6-docs] | Yes   | >= 5.5      |
84
85 [guzzle-3-repo]: https://github.com/guzzle/guzzle3
86 [guzzle-4-repo]: https://github.com/guzzle/guzzle/tree/4.x
87 [guzzle-5-repo]: https://github.com/guzzle/guzzle/tree/5.3
88 [guzzle-6-repo]: https://github.com/guzzle/guzzle
89 [guzzle-3-docs]: http://guzzle3.readthedocs.org/en/latest/
90 [guzzle-5-docs]: http://guzzle.readthedocs.org/en/5.3/
91 [guzzle-6-docs]: http://guzzle.readthedocs.org/en/latest/