| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,1683 @@ |
| 1 |
+# Change Log |
|
| 2 |
+ |
|
| 3 |
+Please refer to [UPGRADING](UPGRADING.md) guide for upgrading to a major version. |
|
| 4 |
+ |
|
| 5 |
+## 7.10.0 - 2025-08-23 |
|
| 6 |
+ |
|
| 7 |
+### Added |
|
| 8 |
+ |
|
| 9 |
+- Support for PHP 8.5 |
|
| 10 |
+ |
|
| 11 |
+### Changed |
|
| 12 |
+ |
|
| 13 |
+- Adjusted `guzzlehttp/promises` version constraint to `^2.3` |
|
| 14 |
+- Adjusted `guzzlehttp/psr7` version constraint to `^2.8` |
|
| 15 |
+ |
|
| 16 |
+ |
|
| 17 |
+## 7.9.3 - 2025-03-27 |
|
| 18 |
+ |
|
| 19 |
+### Changed |
|
| 20 |
+ |
|
| 21 |
+- Remove explicit content-length header for GET requests |
|
| 22 |
+- Improve compatibility with bad servers for boolean cookie values |
|
| 23 |
+ |
|
| 24 |
+ |
|
| 25 |
+## 7.9.2 - 2024-07-24 |
|
| 26 |
+ |
|
| 27 |
+### Fixed |
|
| 28 |
+ |
|
| 29 |
+- Adjusted handler selection to use cURL if its version is 7.21.2 or higher, rather than 7.34.0 |
|
| 30 |
+ |
|
| 31 |
+ |
|
| 32 |
+## 7.9.1 - 2024-07-19 |
|
| 33 |
+ |
|
| 34 |
+### Fixed |
|
| 35 |
+ |
|
| 36 |
+- Fix TLS 1.3 check for HTTP/2 requests |
|
| 37 |
+ |
|
| 38 |
+ |
|
| 39 |
+## 7.9.0 - 2024-07-18 |
|
| 40 |
+ |
|
| 41 |
+### Changed |
|
| 42 |
+ |
|
| 43 |
+- Improve protocol version checks to provide feedback around unsupported protocols |
|
| 44 |
+- Only select the cURL handler by default if 7.34.0 or higher is linked |
|
| 45 |
+- Improved `CurlMultiHandler` to avoid busy wait if possible |
|
| 46 |
+- Dropped support for EOL `guzzlehttp/psr7` v1 |
|
| 47 |
+- Improved URI user info redaction in errors |
|
| 48 |
+ |
|
| 49 |
+## 7.8.2 - 2024-07-18 |
|
| 50 |
+ |
|
| 51 |
+### Added |
|
| 52 |
+ |
|
| 53 |
+- Support for PHP 8.4 |
|
| 54 |
+ |
|
| 55 |
+ |
|
| 56 |
+## 7.8.1 - 2023-12-03 |
|
| 57 |
+ |
|
| 58 |
+### Changed |
|
| 59 |
+ |
|
| 60 |
+- Updated links in docs to their canonical versions |
|
| 61 |
+- Replaced `call_user_func*` with native calls |
|
| 62 |
+ |
|
| 63 |
+ |
|
| 64 |
+## 7.8.0 - 2023-08-27 |
|
| 65 |
+ |
|
| 66 |
+### Added |
|
| 67 |
+ |
|
| 68 |
+- Support for PHP 8.3 |
|
| 69 |
+- Added automatic closing of handles on `CurlFactory` object destruction |
|
| 70 |
+ |
|
| 71 |
+ |
|
| 72 |
+## 7.7.1 - 2023-08-27 |
|
| 73 |
+ |
|
| 74 |
+### Changed |
|
| 75 |
+ |
|
| 76 |
+- Remove the need for `AllowDynamicProperties` in `CurlMultiHandler` |
|
| 77 |
+ |
|
| 78 |
+ |
|
| 79 |
+## 7.7.0 - 2023-05-21 |
|
| 80 |
+ |
|
| 81 |
+### Added |
|
| 82 |
+ |
|
| 83 |
+- Support `guzzlehttp/promises` v2 |
|
| 84 |
+ |
|
| 85 |
+ |
|
| 86 |
+## 7.6.1 - 2023-05-15 |
|
| 87 |
+ |
|
| 88 |
+### Fixed |
|
| 89 |
+ |
|
| 90 |
+- Fix `SetCookie::fromString` MaxAge deprecation warning and skip invalid MaxAge values |
|
| 91 |
+ |
|
| 92 |
+ |
|
| 93 |
+## 7.6.0 - 2023-05-14 |
|
| 94 |
+ |
|
| 95 |
+### Added |
|
| 96 |
+ |
|
| 97 |
+- Support for setting the minimum TLS version in a unified way |
|
| 98 |
+- Apply on request the version set in options parameters |
|
| 99 |
+ |
|
| 100 |
+ |
|
| 101 |
+## 7.5.2 - 2023-05-14 |
|
| 102 |
+ |
|
| 103 |
+### Fixed |
|
| 104 |
+ |
|
| 105 |
+- Fixed set cookie constructor validation |
|
| 106 |
+- Fixed handling of files with `'0'` body |
|
| 107 |
+ |
|
| 108 |
+### Changed |
|
| 109 |
+ |
|
| 110 |
+- Corrected docs and default connect timeout value to 300 seconds |
|
| 111 |
+ |
|
| 112 |
+ |
|
| 113 |
+## 7.5.1 - 2023-04-17 |
|
| 114 |
+ |
|
| 115 |
+### Fixed |
|
| 116 |
+ |
|
| 117 |
+- Fixed `NO_PROXY` settings so that setting the `proxy` option to `no` overrides the env variable |
|
| 118 |
+ |
|
| 119 |
+### Changed |
|
| 120 |
+ |
|
| 121 |
+- Adjusted `guzzlehttp/psr7` version constraint to `^1.9.1 || ^2.4.5` |
|
| 122 |
+ |
|
| 123 |
+ |
|
| 124 |
+## 7.5.0 - 2022-08-28 |
|
| 125 |
+ |
|
| 126 |
+### Added |
|
| 127 |
+ |
|
| 128 |
+- Support PHP 8.2 |
|
| 129 |
+- Add request to delay closure params |
|
| 130 |
+ |
|
| 131 |
+ |
|
| 132 |
+## 7.4.5 - 2022-06-20 |
|
| 133 |
+ |
|
| 134 |
+### Fixed |
|
| 135 |
+ |
|
| 136 |
+* Fix change in port should be considered a change in origin |
|
| 137 |
+* Fix `CURLOPT_HTTPAUTH` option not cleared on change of origin |
|
| 138 |
+ |
|
| 139 |
+ |
|
| 140 |
+## 7.4.4 - 2022-06-09 |
|
| 141 |
+ |
|
| 142 |
+### Fixed |
|
| 143 |
+ |
|
| 144 |
+* Fix failure to strip Authorization header on HTTP downgrade |
|
| 145 |
+* Fix failure to strip the Cookie header on change in host or HTTP downgrade |
|
| 146 |
+ |
|
| 147 |
+ |
|
| 148 |
+## 7.4.3 - 2022-05-25 |
|
| 149 |
+ |
|
| 150 |
+### Fixed |
|
| 151 |
+ |
|
| 152 |
+* Fix cross-domain cookie leakage |
|
| 153 |
+ |
|
| 154 |
+ |
|
| 155 |
+## 7.4.2 - 2022-03-20 |
|
| 156 |
+ |
|
| 157 |
+### Fixed |
|
| 158 |
+ |
|
| 159 |
+- Remove curl auth on cross-domain redirects to align with the Authorization HTTP header |
|
| 160 |
+- Reject non-HTTP schemes in StreamHandler |
|
| 161 |
+- Set a default ssl.peer_name context in StreamHandler to allow `force_ip_resolve` |
|
| 162 |
+ |
|
| 163 |
+ |
|
| 164 |
+## 7.4.1 - 2021-12-06 |
|
| 165 |
+ |
|
| 166 |
+### Changed |
|
| 167 |
+ |
|
| 168 |
+- Replaced implicit URI to string coercion [#2946](https://github.com/guzzle/guzzle/pull/2946) |
|
| 169 |
+- Allow `symfony/deprecation-contracts` version 3 [#2961](https://github.com/guzzle/guzzle/pull/2961) |
|
| 170 |
+ |
|
| 171 |
+### Fixed |
|
| 172 |
+ |
|
| 173 |
+- Only close curl handle if it's done [#2950](https://github.com/guzzle/guzzle/pull/2950) |
|
| 174 |
+ |
|
| 175 |
+ |
|
| 176 |
+## 7.4.0 - 2021-10-18 |
|
| 177 |
+ |
|
| 178 |
+### Added |
|
| 179 |
+ |
|
| 180 |
+- Support PHP 8.1 [#2929](https://github.com/guzzle/guzzle/pull/2929), [#2939](https://github.com/guzzle/guzzle/pull/2939) |
|
| 181 |
+- Support `psr/log` version 2 and 3 [#2943](https://github.com/guzzle/guzzle/pull/2943) |
|
| 182 |
+ |
|
| 183 |
+### Fixed |
|
| 184 |
+ |
|
| 185 |
+- Make sure we always call `restore_error_handler()` [#2915](https://github.com/guzzle/guzzle/pull/2915) |
|
| 186 |
+- Fix progress parameter type compatibility between the cURL and stream handlers [#2936](https://github.com/guzzle/guzzle/pull/2936) |
|
| 187 |
+- Throw `InvalidArgumentException` when an incorrect `headers` array is provided [#2916](https://github.com/guzzle/guzzle/pull/2916), [#2942](https://github.com/guzzle/guzzle/pull/2942) |
|
| 188 |
+ |
|
| 189 |
+### Changed |
|
| 190 |
+ |
|
| 191 |
+- Be more strict with types [#2914](https://github.com/guzzle/guzzle/pull/2914), [#2917](https://github.com/guzzle/guzzle/pull/2917), [#2919](https://github.com/guzzle/guzzle/pull/2919), [#2945](https://github.com/guzzle/guzzle/pull/2945) |
|
| 192 |
+ |
|
| 193 |
+ |
|
| 194 |
+## 7.3.0 - 2021-03-23 |
|
| 195 |
+ |
|
| 196 |
+### Added |
|
| 197 |
+ |
|
| 198 |
+- Support for DER and P12 certificates [#2413](https://github.com/guzzle/guzzle/pull/2413) |
|
| 199 |
+- Support the cURL (http://) scheme for StreamHandler proxies [#2850](https://github.com/guzzle/guzzle/pull/2850) |
|
| 200 |
+- Support for `guzzlehttp/psr7:^2.0` [#2878](https://github.com/guzzle/guzzle/pull/2878) |
|
| 201 |
+ |
|
| 202 |
+### Fixed |
|
| 203 |
+ |
|
| 204 |
+- Handle exceptions on invalid header consistently between PHP versions and handlers [#2872](https://github.com/guzzle/guzzle/pull/2872) |
|
| 205 |
+ |
|
| 206 |
+ |
|
| 207 |
+## 7.2.0 - 2020-10-10 |
|
| 208 |
+ |
|
| 209 |
+### Added |
|
| 210 |
+ |
|
| 211 |
+- Support for PHP 8 [#2712](https://github.com/guzzle/guzzle/pull/2712), [#2715](https://github.com/guzzle/guzzle/pull/2715), [#2789](https://github.com/guzzle/guzzle/pull/2789) |
|
| 212 |
+- Support passing a body summarizer to the http errors middleware [#2795](https://github.com/guzzle/guzzle/pull/2795) |
|
| 213 |
+ |
|
| 214 |
+### Fixed |
|
| 215 |
+ |
|
| 216 |
+- Handle exceptions during response creation [#2591](https://github.com/guzzle/guzzle/pull/2591) |
|
| 217 |
+- Fix CURLOPT_ENCODING not to be overwritten [#2595](https://github.com/guzzle/guzzle/pull/2595) |
|
| 218 |
+- Make sure the Request always has a body object [#2804](https://github.com/guzzle/guzzle/pull/2804) |
|
| 219 |
+ |
|
| 220 |
+### Changed |
|
| 221 |
+ |
|
| 222 |
+- The `TooManyRedirectsException` has a response [#2660](https://github.com/guzzle/guzzle/pull/2660) |
|
| 223 |
+- Avoid "functions" from dependencies [#2712](https://github.com/guzzle/guzzle/pull/2712) |
|
| 224 |
+ |
|
| 225 |
+### Deprecated |
|
| 226 |
+ |
|
| 227 |
+- Using environment variable GUZZLE_CURL_SELECT_TIMEOUT [#2786](https://github.com/guzzle/guzzle/pull/2786) |
|
| 228 |
+ |
|
| 229 |
+ |
|
| 230 |
+## 7.1.1 - 2020-09-30 |
|
| 231 |
+ |
|
| 232 |
+### Fixed |
|
| 233 |
+ |
|
| 234 |
+- Incorrect EOF detection for response body streams on Windows. |
|
| 235 |
+ |
|
| 236 |
+### Changed |
|
| 237 |
+ |
|
| 238 |
+- We dont connect curl `sink` on HEAD requests. |
|
| 239 |
+- Removed some PHP 5 workarounds |
|
| 240 |
+ |
|
| 241 |
+ |
|
| 242 |
+## 7.1.0 - 2020-09-22 |
|
| 243 |
+ |
|
| 244 |
+### Added |
|
| 245 |
+ |
|
| 246 |
+- `GuzzleHttp\MessageFormatterInterface` |
|
| 247 |
+ |
|
| 248 |
+### Fixed |
|
| 249 |
+ |
|
| 250 |
+- Fixed issue that caused cookies with no value not to be stored. |
|
| 251 |
+- On redirects, we allow all safe methods like GET, HEAD and OPTIONS. |
|
| 252 |
+- Fixed logging on empty responses. |
|
| 253 |
+- Make sure MessageFormatter::format returns string |
|
| 254 |
+ |
|
| 255 |
+### Deprecated |
|
| 256 |
+ |
|
| 257 |
+- All functions in `GuzzleHttp` has been deprecated. Use static methods on `Utils` instead. |
|
| 258 |
+- `ClientInterface::getConfig()` |
|
| 259 |
+- `Client::getConfig()` |
|
| 260 |
+- `Client::__call()` |
|
| 261 |
+- `Utils::defaultCaBundle()` |
|
| 262 |
+- `CurlFactory::LOW_CURL_VERSION_NUMBER` |
|
| 263 |
+ |
|
| 264 |
+ |
|
| 265 |
+## 7.0.1 - 2020-06-27 |
|
| 266 |
+ |
|
| 267 |
+* Fix multiply defined functions fatal error [#2699](https://github.com/guzzle/guzzle/pull/2699) |
|
| 268 |
+ |
|
| 269 |
+ |
|
| 270 |
+## 7.0.0 - 2020-06-27 |
|
| 271 |
+ |
|
| 272 |
+No changes since 7.0.0-rc1. |
|
| 273 |
+ |
|
| 274 |
+ |
|
| 275 |
+## 7.0.0-rc1 - 2020-06-15 |
|
| 276 |
+ |
|
| 277 |
+### Changed |
|
| 278 |
+ |
|
| 279 |
+* Use error level for logging errors in Middleware [#2629](https://github.com/guzzle/guzzle/pull/2629) |
|
| 280 |
+* Disabled IDN support by default and require ext-intl to use it [#2675](https://github.com/guzzle/guzzle/pull/2675) |
|
| 281 |
+ |
|
| 282 |
+ |
|
| 283 |
+## 7.0.0-beta2 - 2020-05-25 |
|
| 284 |
+ |
|
| 285 |
+### Added |
|
| 286 |
+ |
|
| 287 |
+* Using `Utils` class instead of functions in the `GuzzleHttp` namespace. [#2546](https://github.com/guzzle/guzzle/pull/2546) |
|
| 288 |
+* `ClientInterface::MAJOR_VERSION` [#2583](https://github.com/guzzle/guzzle/pull/2583) |
|
| 289 |
+ |
|
| 290 |
+### Changed |
|
| 291 |
+ |
|
| 292 |
+* Avoid the `getenv` function when unsafe [#2531](https://github.com/guzzle/guzzle/pull/2531) |
|
| 293 |
+* Added real client methods [#2529](https://github.com/guzzle/guzzle/pull/2529) |
|
| 294 |
+* Avoid functions due to global install conflicts [#2546](https://github.com/guzzle/guzzle/pull/2546) |
|
| 295 |
+* Use Symfony intl-idn polyfill [#2550](https://github.com/guzzle/guzzle/pull/2550) |
|
| 296 |
+* Adding methods for HTTP verbs like `Client::get()`, `Client::head()`, `Client::patch()` etc [#2529](https://github.com/guzzle/guzzle/pull/2529) |
|
| 297 |
+* `ConnectException` extends `TransferException` [#2541](https://github.com/guzzle/guzzle/pull/2541) |
|
| 298 |
+* Updated the default User Agent to "GuzzleHttp/7" [#2654](https://github.com/guzzle/guzzle/pull/2654) |
|
| 299 |
+ |
|
| 300 |
+### Fixed |
|
| 301 |
+ |
|
| 302 |
+* Various intl icu issues [#2626](https://github.com/guzzle/guzzle/pull/2626) |
|
| 303 |
+ |
|
| 304 |
+### Removed |
|
| 305 |
+ |
|
| 306 |
+* Pool option `pool_size` [#2528](https://github.com/guzzle/guzzle/pull/2528) |
|
| 307 |
+ |
|
| 308 |
+ |
|
| 309 |
+## 7.0.0-beta1 - 2019-12-30 |
|
| 310 |
+ |
|
| 311 |
+The diff might look very big but 95% of Guzzle users will be able to upgrade without modification. |
|
| 312 |
+Please see [the upgrade document](UPGRADING.md) that describes all BC breaking changes. |
|
| 313 |
+ |
|
| 314 |
+### Added |
|
| 315 |
+ |
|
| 316 |
+* Implement PSR-18 and dropped PHP 5 support [#2421](https://github.com/guzzle/guzzle/pull/2421) [#2474](https://github.com/guzzle/guzzle/pull/2474) |
|
| 317 |
+* PHP 7 types [#2442](https://github.com/guzzle/guzzle/pull/2442) [#2449](https://github.com/guzzle/guzzle/pull/2449) [#2466](https://github.com/guzzle/guzzle/pull/2466) [#2497](https://github.com/guzzle/guzzle/pull/2497) [#2499](https://github.com/guzzle/guzzle/pull/2499) |
|
| 318 |
+* IDN support for redirects [2424](https://github.com/guzzle/guzzle/pull/2424) |
|
| 319 |
+ |
|
| 320 |
+### Changed |
|
| 321 |
+ |
|
| 322 |
+* Dont allow passing null as third argument to `BadResponseException::__construct()` [#2427](https://github.com/guzzle/guzzle/pull/2427) |
|
| 323 |
+* Use SAPI constant instead of method call [#2450](https://github.com/guzzle/guzzle/pull/2450) |
|
| 324 |
+* Use native function invocation [#2444](https://github.com/guzzle/guzzle/pull/2444) |
|
| 325 |
+* Better defaults for PHP installations with old ICU lib [2454](https://github.com/guzzle/guzzle/pull/2454) |
|
| 326 |
+* Added visibility to all constants [#2462](https://github.com/guzzle/guzzle/pull/2462) |
|
| 327 |
+* Dont allow passing `null` as URI to `Client::request()` and `Client::requestAsync()` [#2461](https://github.com/guzzle/guzzle/pull/2461) |
|
| 328 |
+* Widen the exception argument to throwable [#2495](https://github.com/guzzle/guzzle/pull/2495) |
|
| 329 |
+ |
|
| 330 |
+### Fixed |
|
| 331 |
+ |
|
| 332 |
+* Logging when Promise rejected with a string [#2311](https://github.com/guzzle/guzzle/pull/2311) |
|
| 333 |
+ |
|
| 334 |
+### Removed |
|
| 335 |
+ |
|
| 336 |
+* Class `SeekException` [#2162](https://github.com/guzzle/guzzle/pull/2162) |
|
| 337 |
+* `RequestException::getResponseBodySummary()` [#2425](https://github.com/guzzle/guzzle/pull/2425) |
|
| 338 |
+* `CookieJar::getCookieValue()` [#2433](https://github.com/guzzle/guzzle/pull/2433) |
|
| 339 |
+* `uri_template()` and `UriTemplate` [#2440](https://github.com/guzzle/guzzle/pull/2440) |
|
| 340 |
+* Request options `save_to` and `exceptions` [#2464](https://github.com/guzzle/guzzle/pull/2464) |
|
| 341 |
+ |
|
| 342 |
+ |
|
| 343 |
+## 6.5.2 - 2019-12-23 |
|
| 344 |
+ |
|
| 345 |
+* idn_to_ascii() fix for old PHP versions [#2489](https://github.com/guzzle/guzzle/pull/2489) |
|
| 346 |
+ |
|
| 347 |
+ |
|
| 348 |
+## 6.5.1 - 2019-12-21 |
|
| 349 |
+ |
|
| 350 |
+* Better defaults for PHP installations with old ICU lib [#2454](https://github.com/guzzle/guzzle/pull/2454) |
|
| 351 |
+* IDN support for redirects [#2424](https://github.com/guzzle/guzzle/pull/2424) |
|
| 352 |
+ |
|
| 353 |
+ |
|
| 354 |
+## 6.5.0 - 2019-12-07 |
|
| 355 |
+ |
|
| 356 |
+* Improvement: Added support for reset internal queue in MockHandler. [#2143](https://github.com/guzzle/guzzle/pull/2143) |
|
| 357 |
+* Improvement: Added support to pass arbitrary options to `curl_multi_init`. [#2287](https://github.com/guzzle/guzzle/pull/2287) |
|
| 358 |
+* Fix: Gracefully handle passing `null` to the `header` option. [#2132](https://github.com/guzzle/guzzle/pull/2132) |
|
| 359 |
+* Fix: `RetryMiddleware` did not do exponential delay between retires due unit mismatch. [#2132](https://github.com/guzzle/guzzle/pull/2132) |
|
| 360 |
+* Fix: Prevent undefined offset when using array for ssl_key options. [#2348](https://github.com/guzzle/guzzle/pull/2348) |
|
| 361 |
+* Deprecated `ClientInterface::VERSION` |
|
| 362 |
+ |
|
| 363 |
+ |
|
| 364 |
+## 6.4.1 - 2019-10-23 |
|
| 365 |
+ |
|
| 366 |
+* No `guzzle.phar` was created in 6.4.0 due expired API token. This release will fix that |
|
| 367 |
+* Added `parent::__construct()` to `FileCookieJar` and `SessionCookieJar` |
|
| 368 |
+ |
|
| 369 |
+ |
|
| 370 |
+## 6.4.0 - 2019-10-23 |
|
| 371 |
+ |
|
| 372 |
+* Improvement: Improved error messages when using curl < 7.21.2 [#2108](https://github.com/guzzle/guzzle/pull/2108) |
|
| 373 |
+* Fix: Test if response is readable before returning a summary in `RequestException::getResponseBodySummary()` [#2081](https://github.com/guzzle/guzzle/pull/2081) |
|
| 374 |
+* Fix: Add support for GUZZLE_CURL_SELECT_TIMEOUT environment variable [#2161](https://github.com/guzzle/guzzle/pull/2161) |
|
| 375 |
+* Improvement: Added `GuzzleHttp\Exception\InvalidArgumentException` [#2163](https://github.com/guzzle/guzzle/pull/2163) |
|
| 376 |
+* Improvement: Added `GuzzleHttp\_current_time()` to use `hrtime()` if that function exists. [#2242](https://github.com/guzzle/guzzle/pull/2242) |
|
| 377 |
+* Improvement: Added curl's `appconnect_time` in `TransferStats` [#2284](https://github.com/guzzle/guzzle/pull/2284) |
|
| 378 |
+* Improvement: Make GuzzleException extend Throwable wherever it's available [#2273](https://github.com/guzzle/guzzle/pull/2273) |
|
| 379 |
+* Fix: Prevent concurrent writes to file when saving `CookieJar` [#2335](https://github.com/guzzle/guzzle/pull/2335) |
|
| 380 |
+* Improvement: Update `MockHandler` so we can test transfer time [#2362](https://github.com/guzzle/guzzle/pull/2362) |
|
| 381 |
+ |
|
| 382 |
+ |
|
| 383 |
+## 6.3.3 - 2018-04-22 |
|
| 384 |
+ |
|
| 385 |
+* Fix: Default headers when decode_content is specified |
|
| 386 |
+ |
|
| 387 |
+ |
|
| 388 |
+## 6.3.2 - 2018-03-26 |
|
| 389 |
+ |
|
| 390 |
+* Fix: Release process |
|
| 391 |
+ |
|
| 392 |
+ |
|
| 393 |
+## 6.3.1 - 2018-03-26 |
|
| 394 |
+ |
|
| 395 |
+* Bug fix: Parsing 0 epoch expiry times in cookies [#2014](https://github.com/guzzle/guzzle/pull/2014) |
|
| 396 |
+* Improvement: Better ConnectException detection [#2012](https://github.com/guzzle/guzzle/pull/2012) |
|
| 397 |
+* Bug fix: Malformed domain that contains a "/" [#1999](https://github.com/guzzle/guzzle/pull/1999) |
|
| 398 |
+* Bug fix: Undefined offset when a cookie has no first key-value pair [#1998](https://github.com/guzzle/guzzle/pull/1998) |
|
| 399 |
+* Improvement: Support PHPUnit 6 [#1953](https://github.com/guzzle/guzzle/pull/1953) |
|
| 400 |
+* Bug fix: Support empty headers [#1915](https://github.com/guzzle/guzzle/pull/1915) |
|
| 401 |
+* Bug fix: Ignore case during header modifications [#1916](https://github.com/guzzle/guzzle/pull/1916) |
|
| 402 |
+ |
|
| 403 |
++ Minor code cleanups, documentation fixes and clarifications. |
|
| 404 |
+ |
|
| 405 |
+ |
|
| 406 |
+## 6.3.0 - 2017-06-22 |
|
| 407 |
+ |
|
| 408 |
+* Feature: force IP resolution (ipv4 or ipv6) [#1608](https://github.com/guzzle/guzzle/pull/1608), [#1659](https://github.com/guzzle/guzzle/pull/1659) |
|
| 409 |
+* Improvement: Don't include summary in exception message when body is empty [#1621](https://github.com/guzzle/guzzle/pull/1621) |
|
| 410 |
+* Improvement: Handle `on_headers` option in MockHandler [#1580](https://github.com/guzzle/guzzle/pull/1580) |
|
| 411 |
+* Improvement: Added SUSE Linux CA path [#1609](https://github.com/guzzle/guzzle/issues/1609) |
|
| 412 |
+* Improvement: Use class reference for getting the name of the class instead of using hardcoded strings [#1641](https://github.com/guzzle/guzzle/pull/1641) |
|
| 413 |
+* Feature: Added `read_timeout` option [#1611](https://github.com/guzzle/guzzle/pull/1611) |
|
| 414 |
+* Bug fix: PHP 7.x fixes [#1685](https://github.com/guzzle/guzzle/pull/1685), [#1686](https://github.com/guzzle/guzzle/pull/1686), [#1811](https://github.com/guzzle/guzzle/pull/1811) |
|
| 415 |
+* Deprecation: BadResponseException instantiation without a response [#1642](https://github.com/guzzle/guzzle/pull/1642) |
|
| 416 |
+* Feature: Added NTLM auth [#1569](https://github.com/guzzle/guzzle/pull/1569) |
|
| 417 |
+* Feature: Track redirect HTTP status codes [#1711](https://github.com/guzzle/guzzle/pull/1711) |
|
| 418 |
+* Improvement: Check handler type during construction [#1745](https://github.com/guzzle/guzzle/pull/1745) |
|
| 419 |
+* Improvement: Always include the Content-Length if there's a body [#1721](https://github.com/guzzle/guzzle/pull/1721) |
|
| 420 |
+* Feature: Added convenience method to access a cookie by name [#1318](https://github.com/guzzle/guzzle/pull/1318) |
|
| 421 |
+* Bug fix: Fill `CURLOPT_CAPATH` and `CURLOPT_CAINFO` properly [#1684](https://github.com/guzzle/guzzle/pull/1684) |
|
| 422 |
+* Improvement: Use `\GuzzleHttp\Promise\rejection_for` function instead of object init [#1827](https://github.com/guzzle/guzzle/pull/1827) |
|
| 423 |
+ |
|
| 424 |
++ Minor code cleanups, documentation fixes and clarifications. |
|
| 425 |
+ |
|
| 426 |
+ |
|
| 427 |
+## 6.2.3 - 2017-02-28 |
|
| 428 |
+ |
|
| 429 |
+* Fix deprecations with guzzle/psr7 version 1.4 |
|
| 430 |
+ |
|
| 431 |
+ |
|
| 432 |
+## 6.2.2 - 2016-10-08 |
|
| 433 |
+ |
|
| 434 |
+* Allow to pass nullable Response to delay callable |
|
| 435 |
+* Only add scheme when host is present |
|
| 436 |
+* Fix drain case where content-length is the literal string zero |
|
| 437 |
+* Obfuscate in-URL credentials in exceptions |
|
| 438 |
+ |
|
| 439 |
+ |
|
| 440 |
+## 6.2.1 - 2016-07-18 |
|
| 441 |
+ |
|
| 442 |
+* Address HTTP_PROXY security vulnerability, CVE-2016-5385: |
|
| 443 |
+ https://httpoxy.org/ |
|
| 444 |
+* Fixing timeout bug with StreamHandler: |
|
| 445 |
+ https://github.com/guzzle/guzzle/pull/1488 |
|
| 446 |
+* Only read up to `Content-Length` in PHP StreamHandler to avoid timeouts when |
|
| 447 |
+ a server does not honor `Connection: close`. |
|
| 448 |
+* Ignore URI fragment when sending requests. |
|
| 449 |
+ |
|
| 450 |
+ |
|
| 451 |
+## 6.2.0 - 2016-03-21 |
|
| 452 |
+ |
|
| 453 |
+* Feature: added `GuzzleHttp\json_encode` and `GuzzleHttp\json_decode`. |
|
| 454 |
+ https://github.com/guzzle/guzzle/pull/1389 |
|
| 455 |
+* Bug fix: Fix sleep calculation when waiting for delayed requests. |
|
| 456 |
+ https://github.com/guzzle/guzzle/pull/1324 |
|
| 457 |
+* Feature: More flexible history containers. |
|
| 458 |
+ https://github.com/guzzle/guzzle/pull/1373 |
|
| 459 |
+* Bug fix: defer sink stream opening in StreamHandler. |
|
| 460 |
+ https://github.com/guzzle/guzzle/pull/1377 |
|
| 461 |
+* Bug fix: do not attempt to escape cookie values. |
|
| 462 |
+ https://github.com/guzzle/guzzle/pull/1406 |
|
| 463 |
+* Feature: report original content encoding and length on decoded responses. |
|
| 464 |
+ https://github.com/guzzle/guzzle/pull/1409 |
|
| 465 |
+* Bug fix: rewind seekable request bodies before dispatching to cURL. |
|
| 466 |
+ https://github.com/guzzle/guzzle/pull/1422 |
|
| 467 |
+* Bug fix: provide an empty string to `http_build_query` for HHVM workaround. |
|
| 468 |
+ https://github.com/guzzle/guzzle/pull/1367 |
|
| 469 |
+ |
|
| 470 |
+ |
|
| 471 |
+## 6.1.1 - 2015-11-22 |
|
| 472 |
+ |
|
| 473 |
+* Bug fix: Proxy::wrapSync() now correctly proxies to the appropriate handler |
|
| 474 |
+ https://github.com/guzzle/guzzle/commit/911bcbc8b434adce64e223a6d1d14e9a8f63e4e4 |
|
| 475 |
+* Feature: HandlerStack is now more generic. |
|
| 476 |
+ https://github.com/guzzle/guzzle/commit/f2102941331cda544745eedd97fc8fd46e1ee33e |
|
| 477 |
+* Bug fix: setting verify to false in the StreamHandler now disables peer |
|
| 478 |
+ verification. https://github.com/guzzle/guzzle/issues/1256 |
|
| 479 |
+* Feature: Middleware now uses an exception factory, including more error |
|
| 480 |
+ context. https://github.com/guzzle/guzzle/pull/1282 |
|
| 481 |
+* Feature: better support for disabled functions. |
|
| 482 |
+ https://github.com/guzzle/guzzle/pull/1287 |
|
| 483 |
+* Bug fix: fixed regression where MockHandler was not using `sink`. |
|
| 484 |
+ https://github.com/guzzle/guzzle/pull/1292 |
|
| 485 |
+ |
|
| 486 |
+ |
|
| 487 |
+## 6.1.0 - 2015-09-08 |
|
| 488 |
+ |
|
| 489 |
+* Feature: Added the `on_stats` request option to provide access to transfer |
|
| 490 |
+ statistics for requests. https://github.com/guzzle/guzzle/pull/1202 |
|
| 491 |
+* Feature: Added the ability to persist session cookies in CookieJars. |
|
| 492 |
+ https://github.com/guzzle/guzzle/pull/1195 |
|
| 493 |
+* Feature: Some compatibility updates for Google APP Engine |
|
| 494 |
+ https://github.com/guzzle/guzzle/pull/1216 |
|
| 495 |
+* Feature: Added support for NO_PROXY to prevent the use of a proxy based on |
|
| 496 |
+ a simple set of rules. https://github.com/guzzle/guzzle/pull/1197 |
|
| 497 |
+* Feature: Cookies can now contain square brackets. |
|
| 498 |
+ https://github.com/guzzle/guzzle/pull/1237 |
|
| 499 |
+* Bug fix: Now correctly parsing `=` inside of quotes in Cookies. |
|
| 500 |
+ https://github.com/guzzle/guzzle/pull/1232 |
|
| 501 |
+* Bug fix: Cusotm cURL options now correctly override curl options of the |
|
| 502 |
+ same name. https://github.com/guzzle/guzzle/pull/1221 |
|
| 503 |
+* Bug fix: Content-Type header is now added when using an explicitly provided |
|
| 504 |
+ multipart body. https://github.com/guzzle/guzzle/pull/1218 |
|
| 505 |
+* Bug fix: Now ignoring Set-Cookie headers that have no name. |
|
| 506 |
+* Bug fix: Reason phrase is no longer cast to an int in some cases in the |
|
| 507 |
+ cURL handler. https://github.com/guzzle/guzzle/pull/1187 |
|
| 508 |
+* Bug fix: Remove the Authorization header when redirecting if the Host |
|
| 509 |
+ header changes. https://github.com/guzzle/guzzle/pull/1207 |
|
| 510 |
+* Bug fix: Cookie path matching fixes |
|
| 511 |
+ https://github.com/guzzle/guzzle/issues/1129 |
|
| 512 |
+* Bug fix: Fixing the cURL `body_as_string` setting |
|
| 513 |
+ https://github.com/guzzle/guzzle/pull/1201 |
|
| 514 |
+* Bug fix: quotes are no longer stripped when parsing cookies. |
|
| 515 |
+ https://github.com/guzzle/guzzle/issues/1172 |
|
| 516 |
+* Bug fix: `form_params` and `query` now always uses the `&` separator. |
|
| 517 |
+ https://github.com/guzzle/guzzle/pull/1163 |
|
| 518 |
+* Bug fix: Adding a Content-Length to PHP stream wrapper requests if not set. |
|
| 519 |
+ https://github.com/guzzle/guzzle/pull/1189 |
|
| 520 |
+ |
|
| 521 |
+ |
|
| 522 |
+## 6.0.2 - 2015-07-04 |
|
| 523 |
+ |
|
| 524 |
+* Fixed a memory leak in the curl handlers in which references to callbacks |
|
| 525 |
+ were not being removed by `curl_reset`. |
|
| 526 |
+* Cookies are now extracted properly before redirects. |
|
| 527 |
+* Cookies now allow more character ranges. |
|
| 528 |
+* Decoded Content-Encoding responses are now modified to correctly reflect |
|
| 529 |
+ their state if the encoding was automatically removed by a handler. This |
|
| 530 |
+ means that the `Content-Encoding` header may be removed an the |
|
| 531 |
+ `Content-Length` modified to reflect the message size after removing the |
|
| 532 |
+ encoding. |
|
| 533 |
+* Added a more explicit error message when trying to use `form_params` and |
|
| 534 |
+ `multipart` in the same request. |
|
| 535 |
+* Several fixes for HHVM support. |
|
| 536 |
+* Functions are now conditionally required using an additional level of |
|
| 537 |
+ indirection to help with global Composer installations. |
|
| 538 |
+ |
|
| 539 |
+ |
|
| 540 |
+## 6.0.1 - 2015-05-27 |
|
| 541 |
+ |
|
| 542 |
+* Fixed a bug with serializing the `query` request option where the `&` |
|
| 543 |
+ separator was missing. |
|
| 544 |
+* Added a better error message for when `body` is provided as an array. Please |
|
| 545 |
+ use `form_params` or `multipart` instead. |
|
| 546 |
+* Various doc fixes. |
|
| 547 |
+ |
|
| 548 |
+ |
|
| 549 |
+## 6.0.0 - 2015-05-26 |
|
| 550 |
+ |
|
| 551 |
+* See the UPGRADING.md document for more information. |
|
| 552 |
+* Added `multipart` and `form_params` request options. |
|
| 553 |
+* Added `synchronous` request option. |
|
| 554 |
+* Added the `on_headers` request option. |
|
| 555 |
+* Fixed `expect` handling. |
|
| 556 |
+* No longer adding default middlewares in the client ctor. These need to be |
|
| 557 |
+ present on the provided handler in order to work. |
|
| 558 |
+* Requests are no longer initiated when sending async requests with the |
|
| 559 |
+ CurlMultiHandler. This prevents unexpected recursion from requests completing |
|
| 560 |
+ while ticking the cURL loop. |
|
| 561 |
+* Removed the semantics of setting `default` to `true`. This is no longer |
|
| 562 |
+ required now that the cURL loop is not ticked for async requests. |
|
| 563 |
+* Added request and response logging middleware. |
|
| 564 |
+* No longer allowing self signed certificates when using the StreamHandler. |
|
| 565 |
+* Ensuring that `sink` is valid if saving to a file. |
|
| 566 |
+* Request exceptions now include a "handler context" which provides handler |
|
| 567 |
+ specific contextual information. |
|
| 568 |
+* Added `GuzzleHttp\RequestOptions` to allow request options to be applied |
|
| 569 |
+ using constants. |
|
| 570 |
+* `$maxHandles` has been removed from CurlMultiHandler. |
|
| 571 |
+* `MultipartPostBody` is now part of the `guzzlehttp/psr7` package. |
|
| 572 |
+ |
|
| 573 |
+ |
|
| 574 |
+## 5.3.0 - 2015-05-19 |
|
| 575 |
+ |
|
| 576 |
+* Mock now supports `save_to` |
|
| 577 |
+* Marked `AbstractRequestEvent::getTransaction()` as public. |
|
| 578 |
+* Fixed a bug in which multiple headers using different casing would overwrite |
|
| 579 |
+ previous headers in the associative array. |
|
| 580 |
+* Added `Utils::getDefaultHandler()` |
|
| 581 |
+* Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated. |
|
| 582 |
+* URL scheme is now always lowercased. |
|
| 583 |
+ |
|
| 584 |
+ |
|
| 585 |
+## 6.0.0-beta.1 |
|
| 586 |
+ |
|
| 587 |
+* Requires PHP >= 5.5 |
|
| 588 |
+* Updated to use PSR-7 |
|
| 589 |
+ * Requires immutable messages, which basically means an event based system |
|
| 590 |
+ owned by a request instance is no longer possible. |
|
| 591 |
+ * Utilizing the [Guzzle PSR-7 package](https://github.com/guzzle/psr7). |
|
| 592 |
+ * Removed the dependency on `guzzlehttp/streams`. These stream abstractions |
|
| 593 |
+ are available in the `guzzlehttp/psr7` package under the `GuzzleHttp\Psr7` |
|
| 594 |
+ namespace. |
|
| 595 |
+* Added middleware and handler system |
|
| 596 |
+ * Replaced the Guzzle event and subscriber system with a middleware system. |
|
| 597 |
+ * No longer depends on RingPHP, but rather places the HTTP handlers directly |
|
| 598 |
+ in Guzzle, operating on PSR-7 messages. |
|
| 599 |
+ * Retry logic is now encapsulated in `GuzzleHttp\Middleware::retry`, which |
|
| 600 |
+ means the `guzzlehttp/retry-subscriber` is now obsolete. |
|
| 601 |
+ * Mocking responses is now handled using `GuzzleHttp\Handler\MockHandler`. |
|
| 602 |
+* Asynchronous responses |
|
| 603 |
+ * No longer supports the `future` request option to send an async request. |
|
| 604 |
+ Instead, use one of the `*Async` methods of a client (e.g., `requestAsync`, |
|
| 605 |
+ `getAsync`, etc.). |
|
| 606 |
+ * Utilizing `GuzzleHttp\Promise` instead of React's promise library to avoid |
|
| 607 |
+ recursion required by chaining and forwarding react promises. See |
|
| 608 |
+ https://github.com/guzzle/promises |
|
| 609 |
+ * Added `requestAsync` and `sendAsync` to send request asynchronously. |
|
| 610 |
+ * Added magic methods for `getAsync()`, `postAsync()`, etc. to send requests |
|
| 611 |
+ asynchronously. |
|
| 612 |
+* Request options |
|
| 613 |
+ * POST and form updates |
|
| 614 |
+ * Added the `form_fields` and `form_files` request options. |
|
| 615 |
+ * Removed the `GuzzleHttp\Post` namespace. |
|
| 616 |
+ * The `body` request option no longer accepts an array for POST requests. |
|
| 617 |
+ * The `exceptions` request option has been deprecated in favor of the |
|
| 618 |
+ `http_errors` request options. |
|
| 619 |
+ * The `save_to` request option has been deprecated in favor of `sink` request |
|
| 620 |
+ option. |
|
| 621 |
+* Clients no longer accept an array of URI template string and variables for |
|
| 622 |
+ URI variables. You will need to expand URI templates before passing them |
|
| 623 |
+ into a client constructor or request method. |
|
| 624 |
+* Client methods `get()`, `post()`, `put()`, `patch()`, `options()`, etc. are |
|
| 625 |
+ now magic methods that will send synchronous requests. |
|
| 626 |
+* Replaced `Utils.php` with plain functions in `functions.php`. |
|
| 627 |
+* Removed `GuzzleHttp\Collection`. |
|
| 628 |
+* Removed `GuzzleHttp\BatchResults`. Batched pool results are now returned as |
|
| 629 |
+ an array. |
|
| 630 |
+* Removed `GuzzleHttp\Query`. Query string handling is now handled using an |
|
| 631 |
+ associative array passed into the `query` request option. The query string |
|
| 632 |
+ is serialized using PHP's `http_build_query`. If you need more control, you |
|
| 633 |
+ can pass the query string in as a string. |
|
| 634 |
+* `GuzzleHttp\QueryParser` has been replaced with the |
|
| 635 |
+ `GuzzleHttp\Psr7\parse_query`. |
|
| 636 |
+ |
|
| 637 |
+ |
|
| 638 |
+## 5.2.0 - 2015-01-27 |
|
| 639 |
+ |
|
| 640 |
+* Added `AppliesHeadersInterface` to make applying headers to a request based |
|
| 641 |
+ on the body more generic and not specific to `PostBodyInterface`. |
|
| 642 |
+* Reduced the number of stack frames needed to send requests. |
|
| 643 |
+* Nested futures are now resolved in the client rather than the RequestFsm |
|
| 644 |
+* Finishing state transitions is now handled in the RequestFsm rather than the |
|
| 645 |
+ RingBridge. |
|
| 646 |
+* Added a guard in the Pool class to not use recursion for request retries. |
|
| 647 |
+ |
|
| 648 |
+ |
|
| 649 |
+## 5.1.0 - 2014-12-19 |
|
| 650 |
+ |
|
| 651 |
+* Pool class no longer uses recursion when a request is intercepted. |
|
| 652 |
+* The size of a Pool can now be dynamically adjusted using a callback. |
|
| 653 |
+ See https://github.com/guzzle/guzzle/pull/943. |
|
| 654 |
+* Setting a request option to `null` when creating a request with a client will |
|
| 655 |
+ ensure that the option is not set. This allows you to overwrite default |
|
| 656 |
+ request options on a per-request basis. |
|
| 657 |
+ See https://github.com/guzzle/guzzle/pull/937. |
|
| 658 |
+* Added the ability to limit which protocols are allowed for redirects by |
|
| 659 |
+ specifying a `protocols` array in the `allow_redirects` request option. |
|
| 660 |
+* Nested futures due to retries are now resolved when waiting for synchronous |
|
| 661 |
+ responses. See https://github.com/guzzle/guzzle/pull/947. |
|
| 662 |
+* `"0"` is now an allowed URI path. See |
|
| 663 |
+ https://github.com/guzzle/guzzle/pull/935. |
|
| 664 |
+* `Query` no longer typehints on the `$query` argument in the constructor, |
|
| 665 |
+ allowing for strings and arrays. |
|
| 666 |
+* Exceptions thrown in the `end` event are now correctly wrapped with Guzzle |
|
| 667 |
+ specific exceptions if necessary. |
|
| 668 |
+ |
|
| 669 |
+ |
|
| 670 |
+## 5.0.3 - 2014-11-03 |
|
| 671 |
+ |
|
| 672 |
+This change updates query strings so that they are treated as un-encoded values |
|
| 673 |
+by default where the value represents an un-encoded value to send over the |
|
| 674 |
+wire. A Query object then encodes the value before sending over the wire. This |
|
| 675 |
+means that even value query string values (e.g., ":") are url encoded. This |
|
| 676 |
+makes the Query class match PHP's http_build_query function. However, if you |
|
| 677 |
+want to send requests over the wire using valid query string characters that do |
|
| 678 |
+not need to be encoded, then you can provide a string to Url::setQuery() and |
|
| 679 |
+pass true as the second argument to specify that the query string is a raw |
|
| 680 |
+string that should not be parsed or encoded (unless a call to getQuery() is |
|
| 681 |
+subsequently made, forcing the query-string to be converted into a Query |
|
| 682 |
+object). |
|
| 683 |
+ |
|
| 684 |
+ |
|
| 685 |
+## 5.0.2 - 2014-10-30 |
|
| 686 |
+ |
|
| 687 |
+* Added a trailing `\r\n` to multipart/form-data payloads. See |
|
| 688 |
+ https://github.com/guzzle/guzzle/pull/871 |
|
| 689 |
+* Added a `GuzzleHttp\Pool::send()` convenience method to match the docs. |
|
| 690 |
+* Status codes are now returned as integers. See |
|
| 691 |
+ https://github.com/guzzle/guzzle/issues/881 |
|
| 692 |
+* No longer overwriting an existing `application/x-www-form-urlencoded` header |
|
| 693 |
+ when sending POST requests, allowing for customized headers. See |
|
| 694 |
+ https://github.com/guzzle/guzzle/issues/877 |
|
| 695 |
+* Improved path URL serialization. |
|
| 696 |
+ |
|
| 697 |
+ * No longer double percent-encoding characters in the path or query string if |
|
| 698 |
+ they are already encoded. |
|
| 699 |
+ * Now properly encoding the supplied path to a URL object, instead of only |
|
| 700 |
+ encoding ' ' and '?'. |
|
| 701 |
+ * Note: This has been changed in 5.0.3 to now encode query string values by |
|
| 702 |
+ default unless the `rawString` argument is provided when setting the query |
|
| 703 |
+ string on a URL: Now allowing many more characters to be present in the |
|
| 704 |
+ query string without being percent encoded. See |
|
| 705 |
+ https://datatracker.ietf.org/doc/html/rfc3986#appendix-A |
|
| 706 |
+ |
|
| 707 |
+ |
|
| 708 |
+## 5.0.1 - 2014-10-16 |
|
| 709 |
+ |
|
| 710 |
+Bugfix release. |
|
| 711 |
+ |
|
| 712 |
+* Fixed an issue where connection errors still returned response object in |
|
| 713 |
+ error and end events event though the response is unusable. This has been |
|
| 714 |
+ corrected so that a response is not returned in the `getResponse` method of |
|
| 715 |
+ these events if the response did not complete. https://github.com/guzzle/guzzle/issues/867 |
|
| 716 |
+* Fixed an issue where transfer statistics were not being populated in the |
|
| 717 |
+ RingBridge. https://github.com/guzzle/guzzle/issues/866 |
|
| 718 |
+ |
|
| 719 |
+ |
|
| 720 |
+## 5.0.0 - 2014-10-12 |
|
| 721 |
+ |
|
| 722 |
+Adding support for non-blocking responses and some minor API cleanup. |
|
| 723 |
+ |
|
| 724 |
+### New Features |
|
| 725 |
+ |
|
| 726 |
+* Added support for non-blocking responses based on `guzzlehttp/guzzle-ring`. |
|
| 727 |
+* Added a public API for creating a default HTTP adapter. |
|
| 728 |
+* Updated the redirect plugin to be non-blocking so that redirects are sent |
|
| 729 |
+ concurrently. Other plugins like this can now be updated to be non-blocking. |
|
| 730 |
+* Added a "progress" event so that you can get upload and download progress |
|
| 731 |
+ events. |
|
| 732 |
+* Added `GuzzleHttp\Pool` which implements FutureInterface and transfers |
|
| 733 |
+ requests concurrently using a capped pool size as efficiently as possible. |
|
| 734 |
+* Added `hasListeners()` to EmitterInterface. |
|
| 735 |
+* Removed `GuzzleHttp\ClientInterface::sendAll` and marked |
|
| 736 |
+ `GuzzleHttp\Client::sendAll` as deprecated (it's still there, just not the |
|
| 737 |
+ recommended way). |
|
| 738 |
+ |
|
| 739 |
+### Breaking changes |
|
| 740 |
+ |
|
| 741 |
+The breaking changes in this release are relatively minor. The biggest thing to |
|
| 742 |
+look out for is that request and response objects no longer implement fluent |
|
| 743 |
+interfaces. |
|
| 744 |
+ |
|
| 745 |
+* Removed the fluent interfaces (i.e., `return $this`) from requests, |
|
| 746 |
+ responses, `GuzzleHttp\Collection`, `GuzzleHttp\Url`, |
|
| 747 |
+ `GuzzleHttp\Query`, `GuzzleHttp\Post\PostBody`, and |
|
| 748 |
+ `GuzzleHttp\Cookie\SetCookie`. This blog post provides a good outline of |
|
| 749 |
+ why I did this: https://ocramius.github.io/blog/fluent-interfaces-are-evil/. |
|
| 750 |
+ This also makes the Guzzle message interfaces compatible with the current |
|
| 751 |
+ PSR-7 message proposal. |
|
| 752 |
+* Removed "functions.php", so that Guzzle is truly PSR-4 compliant. Except |
|
| 753 |
+ for the HTTP request functions from function.php, these functions are now |
|
| 754 |
+ implemented in `GuzzleHttp\Utils` using camelCase. `GuzzleHttp\json_decode` |
|
| 755 |
+ moved to `GuzzleHttp\Utils::jsonDecode`. `GuzzleHttp\get_path` moved to |
|
| 756 |
+ `GuzzleHttp\Utils::getPath`. `GuzzleHttp\set_path` moved to |
|
| 757 |
+ `GuzzleHttp\Utils::setPath`. `GuzzleHttp\batch` should now be |
|
| 758 |
+ `GuzzleHttp\Pool::batch`, which returns an `objectStorage`. Using functions.php |
|
| 759 |
+ caused problems for many users: they aren't PSR-4 compliant, require an |
|
| 760 |
+ explicit include, and needed an if-guard to ensure that the functions are not |
|
| 761 |
+ declared multiple times. |
|
| 762 |
+* Rewrote adapter layer. |
|
| 763 |
+ * Removing all classes from `GuzzleHttp\Adapter`, these are now |
|
| 764 |
+ implemented as callables that are stored in `GuzzleHttp\Ring\Client`. |
|
| 765 |
+ * Removed the concept of "parallel adapters". Sending requests serially or |
|
| 766 |
+ concurrently is now handled using a single adapter. |
|
| 767 |
+ * Moved `GuzzleHttp\Adapter\Transaction` to `GuzzleHttp\Transaction`. The |
|
| 768 |
+ Transaction object now exposes the request, response, and client as public |
|
| 769 |
+ properties. The getters and setters have been removed. |
|
| 770 |
+* Removed the "headers" event. This event was only useful for changing the |
|
| 771 |
+ body a response once the headers of the response were known. You can implement |
|
| 772 |
+ a similar behavior in a number of ways. One example might be to use a |
|
| 773 |
+ FnStream that has access to the transaction being sent. For example, when the |
|
| 774 |
+ first byte is written, you could check if the response headers match your |
|
| 775 |
+ expectations, and if so, change the actual stream body that is being |
|
| 776 |
+ written to. |
|
| 777 |
+* Removed the `asArray` parameter from |
|
| 778 |
+ `GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header |
|
| 779 |
+ value as an array, then use the newly added `getHeaderAsArray()` method of |
|
| 780 |
+ `MessageInterface`. This change makes the Guzzle interfaces compatible with |
|
| 781 |
+ the PSR-7 interfaces. |
|
| 782 |
+* `GuzzleHttp\Message\MessageFactory` no longer allows subclasses to add |
|
| 783 |
+ custom request options using double-dispatch (this was an implementation |
|
| 784 |
+ detail). Instead, you should now provide an associative array to the |
|
| 785 |
+ constructor which is a mapping of the request option name mapping to a |
|
| 786 |
+ function that applies the option value to a request. |
|
| 787 |
+* Removed the concept of "throwImmediately" from exceptions and error events. |
|
| 788 |
+ This control mechanism was used to stop a transfer of concurrent requests |
|
| 789 |
+ from completing. This can now be handled by throwing the exception or by |
|
| 790 |
+ cancelling a pool of requests or each outstanding future request individually. |
|
| 791 |
+* Updated to "GuzzleHttp\Streams" 3.0. |
|
| 792 |
+ * `GuzzleHttp\Stream\StreamInterface::getContents()` no longer accepts a |
|
| 793 |
+ `maxLen` parameter. This update makes the Guzzle streams project |
|
| 794 |
+ compatible with the current PSR-7 proposal. |
|
| 795 |
+ * `GuzzleHttp\Stream\Stream::__construct`, |
|
| 796 |
+ `GuzzleHttp\Stream\Stream::factory`, and |
|
| 797 |
+ `GuzzleHttp\Stream\Utils::create` no longer accept a size in the second |
|
| 798 |
+ argument. They now accept an associative array of options, including the |
|
| 799 |
+ "size" key and "metadata" key which can be used to provide custom metadata. |
|
| 800 |
+ |
|
| 801 |
+ |
|
| 802 |
+## 4.2.2 - 2014-09-08 |
|
| 803 |
+ |
|
| 804 |
+* Fixed a memory leak in the CurlAdapter when reusing cURL handles. |
|
| 805 |
+* No longer using `request_fulluri` in stream adapter proxies. |
|
| 806 |
+* Relative redirects are now based on the last response, not the first response. |
|
| 807 |
+ |
|
| 808 |
+## 4.2.1 - 2014-08-19 |
|
| 809 |
+ |
|
| 810 |
+* Ensuring that the StreamAdapter does not always add a Content-Type header |
|
| 811 |
+* Adding automated github releases with a phar and zip |
|
| 812 |
+ |
|
| 813 |
+## 4.2.0 - 2014-08-17 |
|
| 814 |
+ |
|
| 815 |
+* Now merging in default options using a case-insensitive comparison. |
|
| 816 |
+ Closes https://github.com/guzzle/guzzle/issues/767 |
|
| 817 |
+* Added the ability to automatically decode `Content-Encoding` response bodies |
|
| 818 |
+ using the `decode_content` request option. This is set to `true` by default |
|
| 819 |
+ to decode the response body if it comes over the wire with a |
|
| 820 |
+ `Content-Encoding`. Set this value to `false` to disable decoding the |
|
| 821 |
+ response content, and pass a string to provide a request `Accept-Encoding` |
|
| 822 |
+ header and turn on automatic response decoding. This feature now allows you |
|
| 823 |
+ to pass an `Accept-Encoding` header in the headers of a request but still |
|
| 824 |
+ disable automatic response decoding. |
|
| 825 |
+ Closes https://github.com/guzzle/guzzle/issues/764 |
|
| 826 |
+* Added the ability to throw an exception immediately when transferring |
|
| 827 |
+ requests in parallel. Closes https://github.com/guzzle/guzzle/issues/760 |
|
| 828 |
+* Updating guzzlehttp/streams dependency to ~2.1 |
|
| 829 |
+* No longer utilizing the now deprecated namespaced methods from the stream |
|
| 830 |
+ package. |
|
| 831 |
+ |
|
| 832 |
+## 4.1.8 - 2014-08-14 |
|
| 833 |
+ |
|
| 834 |
+* Fixed an issue in the CurlFactory that caused setting the `stream=false` |
|
| 835 |
+ request option to throw an exception. |
|
| 836 |
+ See: https://github.com/guzzle/guzzle/issues/769 |
|
| 837 |
+* TransactionIterator now calls rewind on the inner iterator. |
|
| 838 |
+ See: https://github.com/guzzle/guzzle/pull/765 |
|
| 839 |
+* You can now set the `Content-Type` header to `multipart/form-data` |
|
| 840 |
+ when creating POST requests to force multipart bodies. |
|
| 841 |
+ See https://github.com/guzzle/guzzle/issues/768 |
|
| 842 |
+ |
|
| 843 |
+## 4.1.7 - 2014-08-07 |
|
| 844 |
+ |
|
| 845 |
+* Fixed an error in the HistoryPlugin that caused the same request and response |
|
| 846 |
+ to be logged multiple times when an HTTP protocol error occurs. |
|
| 847 |
+* Ensuring that cURL does not add a default Content-Type when no Content-Type |
|
| 848 |
+ has been supplied by the user. This prevents the adapter layer from modifying |
|
| 849 |
+ the request that is sent over the wire after any listeners may have already |
|
| 850 |
+ put the request in a desired state (e.g., signed the request). |
|
| 851 |
+* Throwing an exception when you attempt to send requests that have the |
|
| 852 |
+ "stream" set to true in parallel using the MultiAdapter. |
|
| 853 |
+* Only calling curl_multi_select when there are active cURL handles. This was |
|
| 854 |
+ previously changed and caused performance problems on some systems due to PHP |
|
| 855 |
+ always selecting until the maximum select timeout. |
|
| 856 |
+* Fixed a bug where multipart/form-data POST fields were not correctly |
|
| 857 |
+ aggregated (e.g., values with "&"). |
|
| 858 |
+ |
|
| 859 |
+## 4.1.6 - 2014-08-03 |
|
| 860 |
+ |
|
| 861 |
+* Added helper methods to make it easier to represent messages as strings, |
|
| 862 |
+ including getting the start line and getting headers as a string. |
|
| 863 |
+ |
|
| 864 |
+## 4.1.5 - 2014-08-02 |
|
| 865 |
+ |
|
| 866 |
+* Automatically retrying cURL "Connection died, retrying a fresh connect" |
|
| 867 |
+ errors when possible. |
|
| 868 |
+* cURL implementation cleanup |
|
| 869 |
+* Allowing multiple event subscriber listeners to be registered per event by |
|
| 870 |
+ passing an array of arrays of listener configuration. |
|
| 871 |
+ |
|
| 872 |
+## 4.1.4 - 2014-07-22 |
|
| 873 |
+ |
|
| 874 |
+* Fixed a bug that caused multi-part POST requests with more than one field to |
|
| 875 |
+ serialize incorrectly. |
|
| 876 |
+* Paths can now be set to "0" |
|
| 877 |
+* `ResponseInterface::xml` now accepts a `libxml_options` option and added a |
|
| 878 |
+ missing default argument that was required when parsing XML response bodies. |
|
| 879 |
+* A `save_to` stream is now created lazily, which means that files are not |
|
| 880 |
+ created on disk unless a request succeeds. |
|
| 881 |
+ |
|
| 882 |
+## 4.1.3 - 2014-07-15 |
|
| 883 |
+ |
|
| 884 |
+* Various fixes to multipart/form-data POST uploads |
|
| 885 |
+* Wrapping function.php in an if-statement to ensure Guzzle can be used |
|
| 886 |
+ globally and in a Composer install |
|
| 887 |
+* Fixed an issue with generating and merging in events to an event array |
|
| 888 |
+* POST headers are only applied before sending a request to allow you to change |
|
| 889 |
+ the query aggregator used before uploading |
|
| 890 |
+* Added much more robust query string parsing |
|
| 891 |
+* Fixed various parsing and normalization issues with URLs |
|
| 892 |
+* Fixing an issue where multi-valued headers were not being utilized correctly |
|
| 893 |
+ in the StreamAdapter |
|
| 894 |
+ |
|
| 895 |
+## 4.1.2 - 2014-06-18 |
|
| 896 |
+ |
|
| 897 |
+* Added support for sending payloads with GET requests |
|
| 898 |
+ |
|
| 899 |
+## 4.1.1 - 2014-06-08 |
|
| 900 |
+ |
|
| 901 |
+* Fixed an issue related to using custom message factory options in subclasses |
|
| 902 |
+* Fixed an issue with nested form fields in a multi-part POST |
|
| 903 |
+* Fixed an issue with using the `json` request option for POST requests |
|
| 904 |
+* Added `ToArrayInterface` to `GuzzleHttp\Cookie\CookieJar` |
|
| 905 |
+ |
|
| 906 |
+## 4.1.0 - 2014-05-27 |
|
| 907 |
+ |
|
| 908 |
+* Added a `json` request option to easily serialize JSON payloads. |
|
| 909 |
+* Added a `GuzzleHttp\json_decode()` wrapper to safely parse JSON. |
|
| 910 |
+* Added `setPort()` and `getPort()` to `GuzzleHttp\Message\RequestInterface`. |
|
| 911 |
+* Added the ability to provide an emitter to a client in the client constructor. |
|
| 912 |
+* Added the ability to persist a cookie session using $_SESSION. |
|
| 913 |
+* Added a trait that can be used to add event listeners to an iterator. |
|
| 914 |
+* Removed request method constants from RequestInterface. |
|
| 915 |
+* Fixed warning when invalid request start-lines are received. |
|
| 916 |
+* Updated MessageFactory to work with custom request option methods. |
|
| 917 |
+* Updated cacert bundle to latest build. |
|
| 918 |
+ |
|
| 919 |
+4.0.2 (2014-04-16) |
|
| 920 |
+------------------ |
|
| 921 |
+ |
|
| 922 |
+* Proxy requests using the StreamAdapter now properly use request_fulluri (#632) |
|
| 923 |
+* Added the ability to set scalars as POST fields (#628) |
|
| 924 |
+ |
|
| 925 |
+## 4.0.1 - 2014-04-04 |
|
| 926 |
+ |
|
| 927 |
+* The HTTP status code of a response is now set as the exception code of |
|
| 928 |
+ RequestException objects. |
|
| 929 |
+* 303 redirects will now correctly switch from POST to GET requests. |
|
| 930 |
+* The default parallel adapter of a client now correctly uses the MultiAdapter. |
|
| 931 |
+* HasDataTrait now initializes the internal data array as an empty array so |
|
| 932 |
+ that the toArray() method always returns an array. |
|
| 933 |
+ |
|
| 934 |
+## 4.0.0 - 2014-03-29 |
|
| 935 |
+ |
|
| 936 |
+* For information on changes and upgrading, see: |
|
| 937 |
+ https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 |
|
| 938 |
+* Added `GuzzleHttp\batch()` as a convenience function for sending requests in |
|
| 939 |
+ parallel without needing to write asynchronous code. |
|
| 940 |
+* Restructured how events are added to `GuzzleHttp\ClientInterface::sendAll()`. |
|
| 941 |
+ You can now pass a callable or an array of associative arrays where each |
|
| 942 |
+ associative array contains the "fn", "priority", and "once" keys. |
|
| 943 |
+ |
|
| 944 |
+## 4.0.0.rc-2 - 2014-03-25 |
|
| 945 |
+ |
|
| 946 |
+* Removed `getConfig()` and `setConfig()` from clients to avoid confusion |
|
| 947 |
+ around whether things like base_url, message_factory, etc. should be able to |
|
| 948 |
+ be retrieved or modified. |
|
| 949 |
+* Added `getDefaultOption()` and `setDefaultOption()` to ClientInterface |
|
| 950 |
+* functions.php functions were renamed using snake_case to match PHP idioms |
|
| 951 |
+* Added support for `HTTP_PROXY`, `HTTPS_PROXY`, and |
|
| 952 |
+ `GUZZLE_CURL_SELECT_TIMEOUT` environment variables |
|
| 953 |
+* Added the ability to specify custom `sendAll()` event priorities |
|
| 954 |
+* Added the ability to specify custom stream context options to the stream |
|
| 955 |
+ adapter. |
|
| 956 |
+* Added a functions.php function for `get_path()` and `set_path()` |
|
| 957 |
+* CurlAdapter and MultiAdapter now use a callable to generate curl resources |
|
| 958 |
+* MockAdapter now properly reads a body and emits a `headers` event |
|
| 959 |
+* Updated Url class to check if a scheme and host are set before adding ":" |
|
| 960 |
+ and "//". This allows empty Url (e.g., "") to be serialized as "". |
|
| 961 |
+* Parsing invalid XML no longer emits warnings |
|
| 962 |
+* Curl classes now properly throw AdapterExceptions |
|
| 963 |
+* Various performance optimizations |
|
| 964 |
+* Streams are created with the faster `Stream\create()` function |
|
| 965 |
+* Marked deprecation_proxy() as internal |
|
| 966 |
+* Test server is now a collection of static methods on a class |
|
| 967 |
+ |
|
| 968 |
+## 4.0.0-rc.1 - 2014-03-15 |
|
| 969 |
+ |
|
| 970 |
+* See https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 |
|
| 971 |
+ |
|
| 972 |
+## 3.8.1 - 2014-01-28 |
|
| 973 |
+ |
|
| 974 |
+* Bug: Always using GET requests when redirecting from a 303 response |
|
| 975 |
+* Bug: CURLOPT_SSL_VERIFYHOST is now correctly set to false when setting `$certificateAuthority` to false in |
|
| 976 |
+ `Guzzle\Http\ClientInterface::setSslVerification()` |
|
| 977 |
+* Bug: RedirectPlugin now uses strict RFC 3986 compliance when combining a base URL with a relative URL |
|
| 978 |
+* Bug: The body of a request can now be set to `"0"` |
|
| 979 |
+* Sending PHP stream requests no longer forces `HTTP/1.0` |
|
| 980 |
+* Adding more information to ExceptionCollection exceptions so that users have more context, including a stack trace of |
|
| 981 |
+ each sub-exception |
|
| 982 |
+* Updated the `$ref` attribute in service descriptions to merge over any existing parameters of a schema (rather than |
|
| 983 |
+ clobbering everything). |
|
| 984 |
+* Merging URLs will now use the query string object from the relative URL (thus allowing custom query aggregators) |
|
| 985 |
+* Query strings are now parsed in a way that they do no convert empty keys with no value to have a dangling `=`. |
|
| 986 |
+ For example `foo&bar=baz` is now correctly parsed and recognized as `foo&bar=baz` rather than `foo=&bar=baz`. |
|
| 987 |
+* Now properly escaping the regular expression delimiter when matching Cookie domains. |
|
| 988 |
+* Network access is now disabled when loading XML documents |
|
| 989 |
+ |
|
| 990 |
+## 3.8.0 - 2013-12-05 |
|
| 991 |
+ |
|
| 992 |
+* Added the ability to define a POST name for a file |
|
| 993 |
+* JSON response parsing now properly walks additionalProperties |
|
| 994 |
+* cURL error code 18 is now retried automatically in the BackoffPlugin |
|
| 995 |
+* Fixed a cURL error when URLs contain fragments |
|
| 996 |
+* Fixed an issue in the BackoffPlugin retry event where it was trying to access all exceptions as if they were |
|
| 997 |
+ CurlExceptions |
|
| 998 |
+* CURLOPT_PROGRESS function fix for PHP 5.5 (69fcc1e) |
|
| 999 |
+* Added the ability for Guzzle to work with older versions of cURL that do not support `CURLOPT_TIMEOUT_MS` |
|
| 1000 |
+* Fixed a bug that was encountered when parsing empty header parameters |
|
| 1001 |
+* UriTemplate now has a `setRegex()` method to match the docs |
|
| 1002 |
+* The `debug` request parameter now checks if it is truthy rather than if it exists |
|
| 1003 |
+* Setting the `debug` request parameter to true shows verbose cURL output instead of using the LogPlugin |
|
| 1004 |
+* Added the ability to combine URLs using strict RFC 3986 compliance |
|
| 1005 |
+* Command objects can now return the validation errors encountered by the command |
|
| 1006 |
+* Various fixes to cache revalidation (#437 and 29797e5) |
|
| 1007 |
+* Various fixes to the AsyncPlugin |
|
| 1008 |
+* Cleaned up build scripts |
|
| 1009 |
+ |
|
| 1010 |
+## 3.7.4 - 2013-10-02 |
|
| 1011 |
+ |
|
| 1012 |
+* Bug fix: 0 is now an allowed value in a description parameter that has a default value (#430) |
|
| 1013 |
+* Bug fix: SchemaFormatter now returns an integer when formatting to a Unix timestamp |
|
| 1014 |
+ (see https://github.com/aws/aws-sdk-php/issues/147) |
|
| 1015 |
+* Bug fix: Cleaned up and fixed URL dot segment removal to properly resolve internal dots |
|
| 1016 |
+* Minimum PHP version is now properly specified as 5.3.3 (up from 5.3.2) (#420) |
|
| 1017 |
+* Updated the bundled cacert.pem (#419) |
|
| 1018 |
+* OauthPlugin now supports adding authentication to headers or query string (#425) |
|
| 1019 |
+ |
|
| 1020 |
+## 3.7.3 - 2013-09-08 |
|
| 1021 |
+ |
|
| 1022 |
+* Added the ability to get the exception associated with a request/command when using `MultiTransferException` and |
|
| 1023 |
+ `CommandTransferException`. |
|
| 1024 |
+* Setting `additionalParameters` of a response to false is now honored when parsing responses with a service description |
|
| 1025 |
+* Schemas are only injected into response models when explicitly configured. |
|
| 1026 |
+* No longer guessing Content-Type based on the path of a request. Content-Type is now only guessed based on the path of |
|
| 1027 |
+ an EntityBody. |
|
| 1028 |
+* Bug fix: ChunkedIterator can now properly chunk a \Traversable as well as an \Iterator. |
|
| 1029 |
+* Bug fix: FilterIterator now relies on `\Iterator` instead of `\Traversable`. |
|
| 1030 |
+* Bug fix: Gracefully handling malformed responses in RequestMediator::writeResponseBody() |
|
| 1031 |
+* Bug fix: Replaced call to canCache with canCacheRequest in the CallbackCanCacheStrategy of the CachePlugin |
|
| 1032 |
+* Bug fix: Visiting XML attributes first before visiting XML children when serializing requests |
|
| 1033 |
+* Bug fix: Properly parsing headers that contain commas contained in quotes |
|
| 1034 |
+* Bug fix: mimetype guessing based on a filename is now case-insensitive |
|
| 1035 |
+ |
|
| 1036 |
+## 3.7.2 - 2013-08-02 |
|
| 1037 |
+ |
|
| 1038 |
+* Bug fix: Properly URL encoding paths when using the PHP-only version of the UriTemplate expander |
|
| 1039 |
+ See https://github.com/guzzle/guzzle/issues/371 |
|
| 1040 |
+* Bug fix: Cookie domains are now matched correctly according to RFC 6265 |
|
| 1041 |
+ See https://github.com/guzzle/guzzle/issues/377 |
|
| 1042 |
+* Bug fix: GET parameters are now used when calculating an OAuth signature |
|
| 1043 |
+* Bug fix: Fixed an issue with cache revalidation where the If-None-Match header was being double quoted |
|
| 1044 |
+* `Guzzle\Common\AbstractHasDispatcher::dispatch()` now returns the event that was dispatched |
|
| 1045 |
+* `Guzzle\Http\QueryString::factory()` now guesses the most appropriate query aggregator to used based on the input. |
|
| 1046 |
+ See https://github.com/guzzle/guzzle/issues/379 |
|
| 1047 |
+* Added a way to add custom domain objects to service description parsing using the `operation.parse_class` event. See |
|
| 1048 |
+ https://github.com/guzzle/guzzle/pull/380 |
|
| 1049 |
+* cURL multi cleanup and optimizations |
|
| 1050 |
+ |
|
| 1051 |
+## 3.7.1 - 2013-07-05 |
|
| 1052 |
+ |
|
| 1053 |
+* Bug fix: Setting default options on a client now works |
|
| 1054 |
+* Bug fix: Setting options on HEAD requests now works. See #352 |
|
| 1055 |
+* Bug fix: Moving stream factory before send event to before building the stream. See #353 |
|
| 1056 |
+* Bug fix: Cookies no longer match on IP addresses per RFC 6265 |
|
| 1057 |
+* Bug fix: Correctly parsing header parameters that are in `<>` and quotes |
|
| 1058 |
+* Added `cert` and `ssl_key` as request options |
|
| 1059 |
+* `Host` header can now diverge from the host part of a URL if the header is set manually |
|
| 1060 |
+* `Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor` was rewritten to change from using SimpleXML to XMLWriter |
|
| 1061 |
+* OAuth parameters are only added via the plugin if they aren't already set |
|
| 1062 |
+* Exceptions are now thrown when a URL cannot be parsed |
|
| 1063 |
+* Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails |
|
| 1064 |
+* Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin |
|
| 1065 |
+ |
|
| 1066 |
+## 3.7.0 - 2013-06-10 |
|
| 1067 |
+ |
|
| 1068 |
+* See UPGRADING.md for more information on how to upgrade. |
|
| 1069 |
+* Requests now support the ability to specify an array of $options when creating a request to more easily modify a |
|
| 1070 |
+ request. You can pass a 'request.options' configuration setting to a client to apply default request options to |
|
| 1071 |
+ every request created by a client (e.g. default query string variables, headers, curl options, etc.). |
|
| 1072 |
+* Added a static facade class that allows you to use Guzzle with static methods and mount the class to `\Guzzle`. |
|
| 1073 |
+ See `Guzzle\Http\StaticClient::mount`. |
|
| 1074 |
+* Added `command.request_options` to `Guzzle\Service\Command\AbstractCommand` to pass request options to requests |
|
| 1075 |
+ created by a command (e.g. custom headers, query string variables, timeout settings, etc.). |
|
| 1076 |
+* Stream size in `Guzzle\Stream\PhpStreamRequestFactory` will now be set if Content-Length is returned in the |
|
| 1077 |
+ headers of a response |
|
| 1078 |
+* Added `Guzzle\Common\Collection::setPath($path, $value)` to set a value into an array using a nested key |
|
| 1079 |
+ (e.g. `$collection->setPath('foo/baz/bar', 'test'); echo $collection['foo']['bar']['bar'];`)
|
|
| 1080 |
+* ServiceBuilders now support storing and retrieving arbitrary data |
|
| 1081 |
+* CachePlugin can now purge all resources for a given URI |
|
| 1082 |
+* CachePlugin can automatically purge matching cached items when a non-idempotent request is sent to a resource |
|
| 1083 |
+* CachePlugin now uses the Vary header to determine if a resource is a cache hit |
|
| 1084 |
+* `Guzzle\Http\Message\Response` now implements `\Serializable` |
|
| 1085 |
+* Added `Guzzle\Cache\CacheAdapterFactory::fromCache()` to more easily create cache adapters |
|
| 1086 |
+* `Guzzle\Service\ClientInterface::execute()` now accepts an array, single command, or Traversable |
|
| 1087 |
+* Fixed a bug in `Guzzle\Http\Message\Header\Link::addLink()` |
|
| 1088 |
+* Better handling of calculating the size of a stream in `Guzzle\Stream\Stream` using fstat() and caching the size |
|
| 1089 |
+* `Guzzle\Common\Exception\ExceptionCollection` now creates a more readable exception message |
|
| 1090 |
+* Fixing BC break: Added back the MonologLogAdapter implementation rather than extending from PsrLog so that older |
|
| 1091 |
+ Symfony users can still use the old version of Monolog. |
|
| 1092 |
+* Fixing BC break: Added the implementation back in for `Guzzle\Http\Message\AbstractMessage::getTokenizedHeader()`. |
|
| 1093 |
+ Now triggering an E_USER_DEPRECATED warning when used. Use `$message->getHeader()->parseParams()`. |
|
| 1094 |
+* Several performance improvements to `Guzzle\Common\Collection` |
|
| 1095 |
+* Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`: |
|
| 1096 |
+ createRequest, head, delete, put, patch, post, options, prepareRequest |
|
| 1097 |
+* Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()` |
|
| 1098 |
+* Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface` |
|
| 1099 |
+* Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to |
|
| 1100 |
+ `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a |
|
| 1101 |
+ resource, string, or EntityBody into the $options parameter to specify the download location of the response. |
|
| 1102 |
+* Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a |
|
| 1103 |
+ default `array()` |
|
| 1104 |
+* Added `Guzzle\Stream\StreamInterface::isRepeatable` |
|
| 1105 |
+* Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use |
|
| 1106 |
+ $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or
|
|
| 1107 |
+ $client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))`.
|
|
| 1108 |
+* Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use $client->getConfig()->getPath('request.options/headers')`.
|
|
| 1109 |
+* Removed `Guzzle\Http\ClientInterface::expandTemplate()` |
|
| 1110 |
+* Removed `Guzzle\Http\ClientInterface::setRequestFactory()` |
|
| 1111 |
+* Removed `Guzzle\Http\ClientInterface::getCurlMulti()` |
|
| 1112 |
+* Removed `Guzzle\Http\Message\RequestInterface::canCache` |
|
| 1113 |
+* Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect` |
|
| 1114 |
+* Removed `Guzzle\Http\Message\RequestInterface::isRedirect` |
|
| 1115 |
+* Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods. |
|
| 1116 |
+* You can now enable E_USER_DEPRECATED warnings to see if you are using a deprecated method by setting |
|
| 1117 |
+ `Guzzle\Common\Version::$emitWarnings` to true. |
|
| 1118 |
+* Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use |
|
| 1119 |
+ `$request->getResponseBody()->isRepeatable()` instead. |
|
| 1120 |
+* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use |
|
| 1121 |
+ `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. |
|
| 1122 |
+* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use |
|
| 1123 |
+ `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. |
|
| 1124 |
+* Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead. |
|
| 1125 |
+* Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead. |
|
| 1126 |
+* Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated |
|
| 1127 |
+* Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand. |
|
| 1128 |
+ These will work through Guzzle 4.0 |
|
| 1129 |
+* Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use [request.options][params]. |
|
| 1130 |
+* Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client. |
|
| 1131 |
+* Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use $client->getConfig()->getPath('request.options/headers')`.
|
|
| 1132 |
+* Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`.
|
|
| 1133 |
+* Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8. |
|
| 1134 |
+* Marked `Guzzle\Common\Collection::inject()` as deprecated. |
|
| 1135 |
+* Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');`
|
|
| 1136 |
+* CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a |
|
| 1137 |
+ CacheStorageInterface. These two objects and interface will be removed in a future version. |
|
| 1138 |
+* Always setting X-cache headers on cached responses |
|
| 1139 |
+* Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin |
|
| 1140 |
+* `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface |
|
| 1141 |
+ $request, Response $response);` |
|
| 1142 |
+* `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);` |
|
| 1143 |
+* `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);` |
|
| 1144 |
+* Added `CacheStorageInterface::purge($url)` |
|
| 1145 |
+* `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin |
|
| 1146 |
+ $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache, |
|
| 1147 |
+ CanCacheStrategyInterface $canCache = null)` |
|
| 1148 |
+* Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)` |
|
| 1149 |
+ |
|
| 1150 |
+## 3.6.0 - 2013-05-29 |
|
| 1151 |
+ |
|
| 1152 |
+* ServiceDescription now implements ToArrayInterface |
|
| 1153 |
+* Added command.hidden_params to blacklist certain headers from being treated as additionalParameters |
|
| 1154 |
+* Guzzle can now correctly parse incomplete URLs |
|
| 1155 |
+* Mixed casing of headers are now forced to be a single consistent casing across all values for that header. |
|
| 1156 |
+* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution |
|
| 1157 |
+* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader(). |
|
| 1158 |
+* Specific header implementations can be created for complex headers. When a message creates a header, it uses a |
|
| 1159 |
+ HeaderFactory which can map specific headers to specific header classes. There is now a Link header and |
|
| 1160 |
+ CacheControl header implementation. |
|
| 1161 |
+* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate |
|
| 1162 |
+* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti() |
|
| 1163 |
+* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in |
|
| 1164 |
+ Guzzle\Http\Curl\RequestMediator |
|
| 1165 |
+* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string. |
|
| 1166 |
+* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface |
|
| 1167 |
+* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders() |
|
| 1168 |
+* Removed Guzzle\Parser\ParserRegister::get(). Use getParser() |
|
| 1169 |
+* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser(). |
|
| 1170 |
+* All response header helper functions return a string rather than mixing Header objects and strings inconsistently |
|
| 1171 |
+* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle |
|
| 1172 |
+ directly via interfaces |
|
| 1173 |
+* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist |
|
| 1174 |
+ but are a no-op until removed. |
|
| 1175 |
+* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a |
|
| 1176 |
+ `Guzzle\Service\Command\ArrayCommandInterface`. |
|
| 1177 |
+* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response |
|
| 1178 |
+ on a request while the request is still being transferred |
|
| 1179 |
+* The ability to case-insensitively search for header values |
|
| 1180 |
+* Guzzle\Http\Message\Header::hasExactHeader |
|
| 1181 |
+* Guzzle\Http\Message\Header::raw. Use getAll() |
|
| 1182 |
+* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object |
|
| 1183 |
+ instead. |
|
| 1184 |
+* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess |
|
| 1185 |
+* Added the ability to cast Model objects to a string to view debug information. |
|
| 1186 |
+ |
|
| 1187 |
+## 3.5.0 - 2013-05-13 |
|
| 1188 |
+ |
|
| 1189 |
+* Bug: Fixed a regression so that request responses are parsed only once per oncomplete event rather than multiple times |
|
| 1190 |
+* Bug: Better cleanup of one-time events across the board (when an event is meant to fire once, it will now remove |
|
| 1191 |
+ itself from the EventDispatcher) |
|
| 1192 |
+* Bug: `Guzzle\Log\MessageFormatter` now properly writes "total_time" and "connect_time" values |
|
| 1193 |
+* Bug: Cloning an EntityEnclosingRequest now clones the EntityBody too |
|
| 1194 |
+* Bug: Fixed an undefined index error when parsing nested JSON responses with a sentAs parameter that reference a |
|
| 1195 |
+ non-existent key |
|
| 1196 |
+* Bug: All __call() method arguments are now required (helps with mocking frameworks) |
|
| 1197 |
+* Deprecating Response::getRequest() and now using a shallow clone of a request object to remove a circular reference |
|
| 1198 |
+ to help with refcount based garbage collection of resources created by sending a request |
|
| 1199 |
+* Deprecating ZF1 cache and log adapters. These will be removed in the next major version. |
|
| 1200 |
+* Deprecating `Response::getPreviousResponse()` (method signature still exists, but it's deprecated). Use the |
|
| 1201 |
+ HistoryPlugin for a history. |
|
| 1202 |
+* Added a `responseBody` alias for the `response_body` location |
|
| 1203 |
+* Refactored internals to no longer rely on Response::getRequest() |
|
| 1204 |
+* HistoryPlugin can now be cast to a string |
|
| 1205 |
+* HistoryPlugin now logs transactions rather than requests and responses to more accurately keep track of the requests |
|
| 1206 |
+ and responses that are sent over the wire |
|
| 1207 |
+* Added `getEffectiveUrl()` and `getRedirectCount()` to Response objects |
|
| 1208 |
+ |
|
| 1209 |
+## 3.4.3 - 2013-04-30 |
|
| 1210 |
+ |
|
| 1211 |
+* Bug fix: Fixing bug introduced in 3.4.2 where redirect responses are duplicated on the final redirected response |
|
| 1212 |
+* Added a check to re-extract the temp cacert bundle from the phar before sending each request |
|
| 1213 |
+ |
|
| 1214 |
+## 3.4.2 - 2013-04-29 |
|
| 1215 |
+ |
|
| 1216 |
+* Bug fix: Stream objects now work correctly with "a" and "a+" modes |
|
| 1217 |
+* Bug fix: Removing `Transfer-Encoding: chunked` header when a Content-Length is present |
|
| 1218 |
+* Bug fix: AsyncPlugin no longer forces HEAD requests |
|
| 1219 |
+* Bug fix: DateTime timezones are now properly handled when using the service description schema formatter |
|
| 1220 |
+* Bug fix: CachePlugin now properly handles stale-if-error directives when a request to the origin server fails |
|
| 1221 |
+* Setting a response on a request will write to the custom request body from the response body if one is specified |
|
| 1222 |
+* LogPlugin now writes to php://output when STDERR is undefined |
|
| 1223 |
+* Added the ability to set multiple POST files for the same key in a single call |
|
| 1224 |
+* application/x-www-form-urlencoded POSTs now use the utf-8 charset by default |
|
| 1225 |
+* Added the ability to queue CurlExceptions to the MockPlugin |
|
| 1226 |
+* Cleaned up how manual responses are queued on requests (removed "queued_response" and now using request.before_send) |
|
| 1227 |
+* Configuration loading now allows remote files |
|
| 1228 |
+ |
|
| 1229 |
+## 3.4.1 - 2013-04-16 |
|
| 1230 |
+ |
|
| 1231 |
+* Large refactoring to how CurlMulti handles work. There is now a proxy that sits in front of a pool of CurlMulti |
|
| 1232 |
+ handles. This greatly simplifies the implementation, fixes a couple bugs, and provides a small performance boost. |
|
| 1233 |
+* Exceptions are now properly grouped when sending requests in parallel |
|
| 1234 |
+* Redirects are now properly aggregated when a multi transaction fails |
|
| 1235 |
+* Redirects now set the response on the original object even in the event of a failure |
|
| 1236 |
+* Bug fix: Model names are now properly set even when using $refs |
|
| 1237 |
+* Added support for PHP 5.5's CurlFile to prevent warnings with the deprecated @ syntax |
|
| 1238 |
+* Added support for oauth_callback in OAuth signatures |
|
| 1239 |
+* Added support for oauth_verifier in OAuth signatures |
|
| 1240 |
+* Added support to attempt to retrieve a command first literally, then ucfirst, the with inflection |
|
| 1241 |
+ |
|
| 1242 |
+## 3.4.0 - 2013-04-11 |
|
| 1243 |
+ |
|
| 1244 |
+* Bug fix: URLs are now resolved correctly based on https://datatracker.ietf.org/doc/html/rfc3986#section-5.2. #289 |
|
| 1245 |
+* Bug fix: Absolute URLs with a path in a service description will now properly override the base URL. #289 |
|
| 1246 |
+* Bug fix: Parsing a query string with a single PHP array value will now result in an array. #263 |
|
| 1247 |
+* Bug fix: Better normalization of the User-Agent header to prevent duplicate headers. #264. |
|
| 1248 |
+* Bug fix: Added `number` type to service descriptions. |
|
| 1249 |
+* Bug fix: empty parameters are removed from an OAuth signature |
|
| 1250 |
+* Bug fix: Revalidating a cache entry prefers the Last-Modified over the Date header |
|
| 1251 |
+* Bug fix: Fixed "array to string" error when validating a union of types in a service description |
|
| 1252 |
+* Bug fix: Removed code that attempted to determine the size of a stream when data is written to the stream |
|
| 1253 |
+* Bug fix: Not including an `oauth_token` if the value is null in the OauthPlugin. |
|
| 1254 |
+* Bug fix: Now correctly aggregating successful requests and failed requests in CurlMulti when a redirect occurs. |
|
| 1255 |
+* The new default CURLOPT_TIMEOUT setting has been increased to 150 seconds so that Guzzle works on poor connections. |
|
| 1256 |
+* Added a feature to EntityEnclosingRequest::setBody() that will automatically set the Content-Type of the request if |
|
| 1257 |
+ the Content-Type can be determined based on the entity body or the path of the request. |
|
| 1258 |
+* Added the ability to overwrite configuration settings in a client when grabbing a throwaway client from a builder. |
|
| 1259 |
+* Added support for a PSR-3 LogAdapter. |
|
| 1260 |
+* Added a `command.after_prepare` event |
|
| 1261 |
+* Added `oauth_callback` parameter to the OauthPlugin |
|
| 1262 |
+* Added the ability to create a custom stream class when using a stream factory |
|
| 1263 |
+* Added a CachingEntityBody decorator |
|
| 1264 |
+* Added support for `additionalParameters` in service descriptions to define how custom parameters are serialized. |
|
| 1265 |
+* The bundled SSL certificate is now provided in the phar file and extracted when running Guzzle from a phar. |
|
| 1266 |
+* You can now send any EntityEnclosingRequest with POST fields or POST files and cURL will handle creating bodies |
|
| 1267 |
+* POST requests using a custom entity body are now treated exactly like PUT requests but with a custom cURL method. This |
|
| 1268 |
+ means that the redirect behavior of POST requests with custom bodies will not be the same as POST requests that use |
|
| 1269 |
+ POST fields or files (the latter is only used when emulating a form POST in the browser). |
|
| 1270 |
+* Lots of cleanup to CurlHandle::factory and RequestFactory::createRequest |
|
| 1271 |
+ |
|
| 1272 |
+## 3.3.1 - 2013-03-10 |
|
| 1273 |
+ |
|
| 1274 |
+* Added the ability to create PHP streaming responses from HTTP requests |
|
| 1275 |
+* Bug fix: Running any filters when parsing response headers with service descriptions |
|
| 1276 |
+* Bug fix: OauthPlugin fixes to allow for multi-dimensional array signing, and sorting parameters before signing |
|
| 1277 |
+* Bug fix: Removed the adding of default empty arrays and false Booleans to responses in order to be consistent across |
|
| 1278 |
+ response location visitors. |
|
| 1279 |
+* Bug fix: Removed the possibility of creating configuration files with circular dependencies |
|
| 1280 |
+* RequestFactory::create() now uses the key of a POST file when setting the POST file name |
|
| 1281 |
+* Added xmlAllowEmpty to serialize an XML body even if no XML specific parameters are set |
|
| 1282 |
+ |
|
| 1283 |
+## 3.3.0 - 2013-03-03 |
|
| 1284 |
+ |
|
| 1285 |
+* A large number of performance optimizations have been made |
|
| 1286 |
+* Bug fix: Added 'wb' as a valid write mode for streams |
|
| 1287 |
+* Bug fix: `Guzzle\Http\Message\Response::json()` now allows scalar values to be returned |
|
| 1288 |
+* Bug fix: Fixed bug in `Guzzle\Http\Message\Response` where wrapping quotes were stripped from `getEtag()` |
|
| 1289 |
+* BC: Removed `Guzzle\Http\Utils` class |
|
| 1290 |
+* BC: Setting a service description on a client will no longer modify the client's command factories. |
|
| 1291 |
+* BC: Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using |
|
| 1292 |
+ the 'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io' |
|
| 1293 |
+* BC: `Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getSteamType()` are no longer converted to |
|
| 1294 |
+ lowercase |
|
| 1295 |
+* Operation parameter objects are now lazy loaded internally |
|
| 1296 |
+* Added ErrorResponsePlugin that can throw errors for responses defined in service description operations' errorResponses |
|
| 1297 |
+* Added support for instantiating responseType=class responseClass classes. Classes must implement |
|
| 1298 |
+ `Guzzle\Service\Command\ResponseClassInterface` |
|
| 1299 |
+* Added support for additionalProperties for top-level parameters in responseType=model responseClasses. These |
|
| 1300 |
+ additional properties also support locations and can be used to parse JSON responses where the outermost part of the |
|
| 1301 |
+ JSON is an array |
|
| 1302 |
+* Added support for nested renaming of JSON models (rename sentAs to name) |
|
| 1303 |
+* CachePlugin |
|
| 1304 |
+ * Added support for stale-if-error so that the CachePlugin can now serve stale content from the cache on error |
|
| 1305 |
+ * Debug headers can now added to cached response in the CachePlugin |
|
| 1306 |
+ |
|
| 1307 |
+## 3.2.0 - 2013-02-14 |
|
| 1308 |
+ |
|
| 1309 |
+* CurlMulti is no longer reused globally. A new multi object is created per-client. This helps to isolate clients. |
|
| 1310 |
+* URLs with no path no longer contain a "/" by default |
|
| 1311 |
+* Guzzle\Http\QueryString does no longer manages the leading "?". This is now handled in Guzzle\Http\Url. |
|
| 1312 |
+* BadResponseException no longer includes the full request and response message |
|
| 1313 |
+* Adding setData() to Guzzle\Service\Description\ServiceDescriptionInterface |
|
| 1314 |
+* Adding getResponseBody() to Guzzle\Http\Message\RequestInterface |
|
| 1315 |
+* Various updates to classes to use ServiceDescriptionInterface type hints rather than ServiceDescription |
|
| 1316 |
+* Header values can now be normalized into distinct values when multiple headers are combined with a comma separated list |
|
| 1317 |
+* xmlEncoding can now be customized for the XML declaration of a XML service description operation |
|
| 1318 |
+* Guzzle\Http\QueryString now uses Guzzle\Http\QueryAggregator\QueryAggregatorInterface objects to add custom value |
|
| 1319 |
+ aggregation and no longer uses callbacks |
|
| 1320 |
+* The URL encoding implementation of Guzzle\Http\QueryString can now be customized |
|
| 1321 |
+* Bug fix: Filters were not always invoked for array service description parameters |
|
| 1322 |
+* Bug fix: Redirects now use a target response body rather than a temporary response body |
|
| 1323 |
+* Bug fix: The default exponential backoff BackoffPlugin was not giving when the request threshold was exceeded |
|
| 1324 |
+* Bug fix: Guzzle now takes the first found value when grabbing Cache-Control directives |
|
| 1325 |
+ |
|
| 1326 |
+## 3.1.2 - 2013-01-27 |
|
| 1327 |
+ |
|
| 1328 |
+* Refactored how operation responses are parsed. Visitors now include a before() method responsible for parsing the |
|
| 1329 |
+ response body. For example, the XmlVisitor now parses the XML response into an array in the before() method. |
|
| 1330 |
+* Fixed an issue where cURL would not automatically decompress responses when the Accept-Encoding header was sent |
|
| 1331 |
+* CURLOPT_SSL_VERIFYHOST is never set to 1 because it is deprecated (see 5e0ff2ef20f839e19d1eeb298f90ba3598784444) |
|
| 1332 |
+* Fixed a bug where redirect responses were not chained correctly using getPreviousResponse() |
|
| 1333 |
+* Setting default headers on a client after setting the user-agent will not erase the user-agent setting |
|
| 1334 |
+ |
|
| 1335 |
+## 3.1.1 - 2013-01-20 |
|
| 1336 |
+ |
|
| 1337 |
+* Adding wildcard support to Guzzle\Common\Collection::getPath() |
|
| 1338 |
+* Adding alias support to ServiceBuilder configs |
|
| 1339 |
+* Adding Guzzle\Service\Resource\CompositeResourceIteratorFactory and cleaning up factory interface |
|
| 1340 |
+ |
|
| 1341 |
+## 3.1.0 - 2013-01-12 |
|
| 1342 |
+ |
|
| 1343 |
+* BC: CurlException now extends from RequestException rather than BadResponseException |
|
| 1344 |
+* BC: Renamed Guzzle\Plugin\Cache\CanCacheStrategyInterface::canCache() to canCacheRequest() and added CanCacheResponse() |
|
| 1345 |
+* Added getData to ServiceDescriptionInterface |
|
| 1346 |
+* Added context array to RequestInterface::setState() |
|
| 1347 |
+* Bug: Removing hard dependency on the BackoffPlugin from Guzzle\Http |
|
| 1348 |
+* Bug: Adding required content-type when JSON request visitor adds JSON to a command |
|
| 1349 |
+* Bug: Fixing the serialization of a service description with custom data |
|
| 1350 |
+* Made it easier to deal with exceptions thrown when transferring commands or requests in parallel by providing |
|
| 1351 |
+ an array of successful and failed responses |
|
| 1352 |
+* Moved getPath from Guzzle\Service\Resource\Model to Guzzle\Common\Collection |
|
| 1353 |
+* Added Guzzle\Http\IoEmittingEntityBody |
|
| 1354 |
+* Moved command filtration from validators to location visitors |
|
| 1355 |
+* Added `extends` attributes to service description parameters |
|
| 1356 |
+* Added getModels to ServiceDescriptionInterface |
|
| 1357 |
+ |
|
| 1358 |
+## 3.0.7 - 2012-12-19 |
|
| 1359 |
+ |
|
| 1360 |
+* Fixing phar detection when forcing a cacert to system if null or true |
|
| 1361 |
+* Allowing filename to be passed to `Guzzle\Http\Message\Request::setResponseBody()` |
|
| 1362 |
+* Cleaning up `Guzzle\Common\Collection::inject` method |
|
| 1363 |
+* Adding a response_body location to service descriptions |
|
| 1364 |
+ |
|
| 1365 |
+## 3.0.6 - 2012-12-09 |
|
| 1366 |
+ |
|
| 1367 |
+* CurlMulti performance improvements |
|
| 1368 |
+* Adding setErrorResponses() to Operation |
|
| 1369 |
+* composer.json tweaks |
|
| 1370 |
+ |
|
| 1371 |
+## 3.0.5 - 2012-11-18 |
|
| 1372 |
+ |
|
| 1373 |
+* Bug: Fixing an infinite recursion bug caused from revalidating with the CachePlugin |
|
| 1374 |
+* Bug: Response body can now be a string containing "0" |
|
| 1375 |
+* Bug: Using Guzzle inside of a phar uses system by default but now allows for a custom cacert |
|
| 1376 |
+* Bug: QueryString::fromString now properly parses query string parameters that contain equal signs |
|
| 1377 |
+* Added support for XML attributes in service description responses |
|
| 1378 |
+* DefaultRequestSerializer now supports array URI parameter values for URI template expansion |
|
| 1379 |
+* Added better mimetype guessing to requests and post files |
|
| 1380 |
+ |
|
| 1381 |
+## 3.0.4 - 2012-11-11 |
|
| 1382 |
+ |
|
| 1383 |
+* Bug: Fixed a bug when adding multiple cookies to a request to use the correct glue value |
|
| 1384 |
+* Bug: Cookies can now be added that have a name, domain, or value set to "0" |
|
| 1385 |
+* Bug: Using the system cacert bundle when using the Phar |
|
| 1386 |
+* Added json and xml methods to Response to make it easier to parse JSON and XML response data into data structures |
|
| 1387 |
+* Enhanced cookie jar de-duplication |
|
| 1388 |
+* Added the ability to enable strict cookie jars that throw exceptions when invalid cookies are added |
|
| 1389 |
+* Added setStream to StreamInterface to actually make it possible to implement custom rewind behavior for entity bodies |
|
| 1390 |
+* Added the ability to create any sort of hash for a stream rather than just an MD5 hash |
|
| 1391 |
+ |
|
| 1392 |
+## 3.0.3 - 2012-11-04 |
|
| 1393 |
+ |
|
| 1394 |
+* Implementing redirects in PHP rather than cURL |
|
| 1395 |
+* Added PECL URI template extension and using as default parser if available |
|
| 1396 |
+* Bug: Fixed Content-Length parsing of Response factory |
|
| 1397 |
+* Adding rewind() method to entity bodies and streams. Allows for custom rewinding of non-repeatable streams. |
|
| 1398 |
+* Adding ToArrayInterface throughout library |
|
| 1399 |
+* Fixing OauthPlugin to create unique nonce values per request |
|
| 1400 |
+ |
|
| 1401 |
+## 3.0.2 - 2012-10-25 |
|
| 1402 |
+ |
|
| 1403 |
+* Magic methods are enabled by default on clients |
|
| 1404 |
+* Magic methods return the result of a command |
|
| 1405 |
+* Service clients no longer require a base_url option in the factory |
|
| 1406 |
+* Bug: Fixed an issue with URI templates where null template variables were being expanded |
|
| 1407 |
+ |
|
| 1408 |
+## 3.0.1 - 2012-10-22 |
|
| 1409 |
+ |
|
| 1410 |
+* Models can now be used like regular collection objects by calling filter, map, etc. |
|
| 1411 |
+* Models no longer require a Parameter structure or initial data in the constructor |
|
| 1412 |
+* Added a custom AppendIterator to get around a PHP bug with the `\AppendIterator` |
|
| 1413 |
+ |
|
| 1414 |
+## 3.0.0 - 2012-10-15 |
|
| 1415 |
+ |
|
| 1416 |
+* Rewrote service description format to be based on Swagger |
|
| 1417 |
+ * Now based on JSON schema |
|
| 1418 |
+ * Added nested input structures and nested response models |
|
| 1419 |
+ * Support for JSON and XML input and output models |
|
| 1420 |
+ * Renamed `commands` to `operations` |
|
| 1421 |
+ * Removed dot class notation |
|
| 1422 |
+ * Removed custom types |
|
| 1423 |
+* Broke the project into smaller top-level namespaces to be more component friendly |
|
| 1424 |
+* Removed support for XML configs and descriptions. Use arrays or JSON files. |
|
| 1425 |
+* Removed the Validation component and Inspector |
|
| 1426 |
+* Moved all cookie code to Guzzle\Plugin\Cookie |
|
| 1427 |
+* Magic methods on a Guzzle\Service\Client now return the command un-executed. |
|
| 1428 |
+* Calling getResult() or getResponse() on a command will lazily execute the command if needed. |
|
| 1429 |
+* Now shipping with cURL's CA certs and using it by default |
|
| 1430 |
+* Added previousResponse() method to response objects |
|
| 1431 |
+* No longer sending Accept and Accept-Encoding headers on every request |
|
| 1432 |
+* Only sending an Expect header by default when a payload is greater than 1MB |
|
| 1433 |
+* Added/moved client options: |
|
| 1434 |
+ * curl.blacklist to curl.option.blacklist |
|
| 1435 |
+ * Added ssl.certificate_authority |
|
| 1436 |
+* Added a Guzzle\Iterator component |
|
| 1437 |
+* Moved plugins from Guzzle\Http\Plugin to Guzzle\Plugin |
|
| 1438 |
+* Added a more robust backoff retry strategy (replaced the ExponentialBackoffPlugin) |
|
| 1439 |
+* Added a more robust caching plugin |
|
| 1440 |
+* Added setBody to response objects |
|
| 1441 |
+* Updating LogPlugin to use a more flexible MessageFormatter |
|
| 1442 |
+* Added a completely revamped build process |
|
| 1443 |
+* Cleaning up Collection class and removing default values from the get method |
|
| 1444 |
+* Fixed ZF2 cache adapters |
|
| 1445 |
+ |
|
| 1446 |
+## 2.8.8 - 2012-10-15 |
|
| 1447 |
+ |
|
| 1448 |
+* Bug: Fixed a cookie issue that caused dot prefixed domains to not match where popular browsers did |
|
| 1449 |
+ |
|
| 1450 |
+## 2.8.7 - 2012-09-30 |
|
| 1451 |
+ |
|
| 1452 |
+* Bug: Fixed config file aliases for JSON includes |
|
| 1453 |
+* Bug: Fixed cookie bug on a request object by using CookieParser to parse cookies on requests |
|
| 1454 |
+* Bug: Removing the path to a file when sending a Content-Disposition header on a POST upload |
|
| 1455 |
+* Bug: Hardening request and response parsing to account for missing parts |
|
| 1456 |
+* Bug: Fixed PEAR packaging |
|
| 1457 |
+* Bug: Fixed Request::getInfo |
|
| 1458 |
+* Bug: Fixed cases where CURLM_CALL_MULTI_PERFORM return codes were causing curl transactions to fail |
|
| 1459 |
+* Adding the ability for the namespace Iterator factory to look in multiple directories |
|
| 1460 |
+* Added more getters/setters/removers from service descriptions |
|
| 1461 |
+* Added the ability to remove POST fields from OAuth signatures |
|
| 1462 |
+* OAuth plugin now supports 2-legged OAuth |
|
| 1463 |
+ |
|
| 1464 |
+## 2.8.6 - 2012-09-05 |
|
| 1465 |
+ |
|
| 1466 |
+* Added the ability to modify and build service descriptions |
|
| 1467 |
+* Added the use of visitors to apply parameters to locations in service descriptions using the dynamic command |
|
| 1468 |
+* Added a `json` parameter location |
|
| 1469 |
+* Now allowing dot notation for classes in the CacheAdapterFactory |
|
| 1470 |
+* Using the union of two arrays rather than an array_merge when extending service builder services and service params |
|
| 1471 |
+* Ensuring that a service is a string before doing strpos() checks on it when substituting services for references |
|
| 1472 |
+ in service builder config files. |
|
| 1473 |
+* Services defined in two different config files that include one another will by default replace the previously |
|
| 1474 |
+ defined service, but you can now create services that extend themselves and merge their settings over the previous |
|
| 1475 |
+* The JsonLoader now supports aliasing filenames with different filenames. This allows you to alias something like |
|
| 1476 |
+ '_default' with a default JSON configuration file. |
|
| 1477 |
+ |
|
| 1478 |
+## 2.8.5 - 2012-08-29 |
|
| 1479 |
+ |
|
| 1480 |
+* Bug: Suppressed empty arrays from URI templates |
|
| 1481 |
+* Bug: Added the missing $options argument from ServiceDescription::factory to enable caching |
|
| 1482 |
+* Added support for HTTP responses that do not contain a reason phrase in the start-line |
|
| 1483 |
+* AbstractCommand commands are now invokable |
|
| 1484 |
+* Added a way to get the data used when signing an Oauth request before a request is sent |
|
| 1485 |
+ |
|
| 1486 |
+## 2.8.4 - 2012-08-15 |
|
| 1487 |
+ |
|
| 1488 |
+* Bug: Custom delay time calculations are no longer ignored in the ExponentialBackoffPlugin |
|
| 1489 |
+* Added the ability to transfer entity bodies as a string rather than streamed. This gets around curl error 65. Set `body_as_string` in a request's curl options to enable. |
|
| 1490 |
+* Added a StreamInterface, EntityBodyInterface, and added ftell() to Guzzle\Common\Stream |
|
| 1491 |
+* Added an AbstractEntityBodyDecorator and a ReadLimitEntityBody decorator to transfer only a subset of a decorated stream |
|
| 1492 |
+* Stream and EntityBody objects will now return the file position to the previous position after a read required operation (e.g. getContentMd5()) |
|
| 1493 |
+* Added additional response status codes |
|
| 1494 |
+* Removed SSL information from the default User-Agent header |
|
| 1495 |
+* DELETE requests can now send an entity body |
|
| 1496 |
+* Added an EventDispatcher to the ExponentialBackoffPlugin and added an ExponentialBackoffLogger to log backoff retries |
|
| 1497 |
+* Added the ability of the MockPlugin to consume mocked request bodies |
|
| 1498 |
+* LogPlugin now exposes request and response objects in the extras array |
|
| 1499 |
+ |
|
| 1500 |
+## 2.8.3 - 2012-07-30 |
|
| 1501 |
+ |
|
| 1502 |
+* Bug: Fixed a case where empty POST requests were sent as GET requests |
|
| 1503 |
+* Bug: Fixed a bug in ExponentialBackoffPlugin that caused fatal errors when retrying an EntityEnclosingRequest that does not have a body |
|
| 1504 |
+* Bug: Setting the response body of a request to null after completing a request, not when setting the state of a request to new |
|
| 1505 |
+* Added multiple inheritance to service description commands |
|
| 1506 |
+* Added an ApiCommandInterface and added `getParamNames()` and `hasParam()` |
|
| 1507 |
+* Removed the default 2mb size cutoff from the Md5ValidatorPlugin so that it now defaults to validating everything |
|
| 1508 |
+* Changed CurlMulti::perform to pass a smaller timeout to CurlMulti::executeHandles |
|
| 1509 |
+ |
|
| 1510 |
+## 2.8.2 - 2012-07-24 |
|
| 1511 |
+ |
|
| 1512 |
+* Bug: Query string values set to 0 are no longer dropped from the query string |
|
| 1513 |
+* Bug: A Collection object is no longer created each time a call is made to `Guzzle\Service\Command\AbstractCommand::getRequestHeaders()` |
|
| 1514 |
+* Bug: `+` is now treated as an encoded space when parsing query strings |
|
| 1515 |
+* QueryString and Collection performance improvements |
|
| 1516 |
+* Allowing dot notation for class paths in filters attribute of a service descriptions |
|
| 1517 |
+ |
|
| 1518 |
+## 2.8.1 - 2012-07-16 |
|
| 1519 |
+ |
|
| 1520 |
+* Loosening Event Dispatcher dependency |
|
| 1521 |
+* POST redirects can now be customized using CURLOPT_POSTREDIR |
|
| 1522 |
+ |
|
| 1523 |
+## 2.8.0 - 2012-07-15 |
|
| 1524 |
+ |
|
| 1525 |
+* BC: Guzzle\Http\Query |
|
| 1526 |
+ * Query strings with empty variables will always show an equal sign unless the variable is set to QueryString::BLANK (e.g. ?acl= vs ?acl) |
|
| 1527 |
+ * Changed isEncodingValues() and isEncodingFields() to isUrlEncoding() |
|
| 1528 |
+ * Changed setEncodeValues(bool) and setEncodeFields(bool) to useUrlEncoding(bool) |
|
| 1529 |
+ * Changed the aggregation functions of QueryString to be static methods |
|
| 1530 |
+ * Can now use fromString() with querystrings that have a leading ? |
|
| 1531 |
+* cURL configuration values can be specified in service descriptions using `curl.` prefixed parameters |
|
| 1532 |
+* Content-Length is set to 0 before emitting the request.before_send event when sending an empty request body |
|
| 1533 |
+* Cookies are no longer URL decoded by default |
|
| 1534 |
+* Bug: URI template variables set to null are no longer expanded |
|
| 1535 |
+ |
|
| 1536 |
+## 2.7.2 - 2012-07-02 |
|
| 1537 |
+ |
|
| 1538 |
+* BC: Moving things to get ready for subtree splits. Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser. |
|
| 1539 |
+* BC: Removing Guzzle\Common\Batch\Batch::count() and replacing it with isEmpty() |
|
| 1540 |
+* CachePlugin now allows for a custom request parameter function to check if a request can be cached |
|
| 1541 |
+* Bug fix: CachePlugin now only caches GET and HEAD requests by default |
|
| 1542 |
+* Bug fix: Using header glue when transferring headers over the wire |
|
| 1543 |
+* Allowing deeply nested arrays for composite variables in URI templates |
|
| 1544 |
+* Batch divisors can now return iterators or arrays |
|
| 1545 |
+ |
|
| 1546 |
+## 2.7.1 - 2012-06-26 |
|
| 1547 |
+ |
|
| 1548 |
+* Minor patch to update version number in UA string |
|
| 1549 |
+* Updating build process |
|
| 1550 |
+ |
|
| 1551 |
+## 2.7.0 - 2012-06-25 |
|
| 1552 |
+ |
|
| 1553 |
+* BC: Inflection classes moved to Guzzle\Inflection. No longer static methods. Can now inject custom inflectors into classes. |
|
| 1554 |
+* BC: Removed magic setX methods from commands |
|
| 1555 |
+* BC: Magic methods mapped to service description commands are now inflected in the command factory rather than the client __call() method |
|
| 1556 |
+* Verbose cURL options are no longer enabled by default. Set curl.debug to true on a client to enable. |
|
| 1557 |
+* Bug: Now allowing colons in a response start-line (e.g. HTTP/1.1 503 Service Unavailable: Back-end server is at capacity) |
|
| 1558 |
+* Guzzle\Service\Resource\ResourceIteratorApplyBatched now internally uses the Guzzle\Common\Batch namespace |
|
| 1559 |
+* Added Guzzle\Service\Plugin namespace and a PluginCollectionPlugin |
|
| 1560 |
+* Added the ability to set POST fields and files in a service description |
|
| 1561 |
+* Guzzle\Http\EntityBody::factory() now accepts objects with a __toString() method |
|
| 1562 |
+* Adding a command.before_prepare event to clients |
|
| 1563 |
+* Added BatchClosureTransfer and BatchClosureDivisor |
|
| 1564 |
+* BatchTransferException now includes references to the batch divisor and transfer strategies |
|
| 1565 |
+* Fixed some tests so that they pass more reliably |
|
| 1566 |
+* Added Guzzle\Common\Log\ArrayLogAdapter |
|
| 1567 |
+ |
|
| 1568 |
+## 2.6.6 - 2012-06-10 |
|
| 1569 |
+ |
|
| 1570 |
+* BC: Removing Guzzle\Http\Plugin\BatchQueuePlugin |
|
| 1571 |
+* BC: Removing Guzzle\Service\Command\CommandSet |
|
| 1572 |
+* Adding generic batching system (replaces the batch queue plugin and command set) |
|
| 1573 |
+* Updating ZF cache and log adapters and now using ZF's composer repository |
|
| 1574 |
+* Bug: Setting the name of each ApiParam when creating through an ApiCommand |
|
| 1575 |
+* Adding result_type, result_doc, deprecated, and doc_url to service descriptions |
|
| 1576 |
+* Bug: Changed the default cookie header casing back to 'Cookie' |
|
| 1577 |
+ |
|
| 1578 |
+## 2.6.5 - 2012-06-03 |
|
| 1579 |
+ |
|
| 1580 |
+* BC: Renaming Guzzle\Http\Message\RequestInterface::getResourceUri() to getResource() |
|
| 1581 |
+* BC: Removing unused AUTH_BASIC and AUTH_DIGEST constants from |
|
| 1582 |
+* BC: Guzzle\Http\Cookie is now used to manage Set-Cookie data, not Cookie data |
|
| 1583 |
+* BC: Renaming methods in the CookieJarInterface |
|
| 1584 |
+* Moving almost all cookie logic out of the CookiePlugin and into the Cookie or CookieJar implementations |
|
| 1585 |
+* Making the default glue for HTTP headers ';' instead of ',' |
|
| 1586 |
+* Adding a removeValue to Guzzle\Http\Message\Header |
|
| 1587 |
+* Adding getCookies() to request interface. |
|
| 1588 |
+* Making it easier to add event subscribers to HasDispatcherInterface classes. Can now directly call addSubscriber() |
|
| 1589 |
+ |
|
| 1590 |
+## 2.6.4 - 2012-05-30 |
|
| 1591 |
+ |
|
| 1592 |
+* BC: Cleaning up how POST files are stored in EntityEnclosingRequest objects. Adding PostFile class. |
|
| 1593 |
+* BC: Moving ApiCommand specific functionality from the Inspector and on to the ApiCommand |
|
| 1594 |
+* Bug: Fixing magic method command calls on clients |
|
| 1595 |
+* Bug: Email constraint only validates strings |
|
| 1596 |
+* Bug: Aggregate POST fields when POST files are present in curl handle |
|
| 1597 |
+* Bug: Fixing default User-Agent header |
|
| 1598 |
+* Bug: Only appending or prepending parameters in commands if they are specified |
|
| 1599 |
+* Bug: Not requiring response reason phrases or status codes to match a predefined list of codes |
|
| 1600 |
+* Allowing the use of dot notation for class namespaces when using instance_of constraint |
|
| 1601 |
+* Added any_match validation constraint |
|
| 1602 |
+* Added an AsyncPlugin |
|
| 1603 |
+* Passing request object to the calculateWait method of the ExponentialBackoffPlugin |
|
| 1604 |
+* Allowing the result of a command object to be changed |
|
| 1605 |
+* Parsing location and type sub values when instantiating a service description rather than over and over at runtime |
|
| 1606 |
+ |
|
| 1607 |
+## 2.6.3 - 2012-05-23 |
|
| 1608 |
+ |
|
| 1609 |
+* [BC] Guzzle\Common\FromConfigInterface no longer requires any config options. |
|
| 1610 |
+* [BC] Refactoring how POST files are stored on an EntityEnclosingRequest. They are now separate from POST fields. |
|
| 1611 |
+* You can now use an array of data when creating PUT request bodies in the request factory. |
|
| 1612 |
+* Removing the requirement that HTTPS requests needed a Cache-Control: public directive to be cacheable. |
|
| 1613 |
+* [Http] Adding support for Content-Type in multipart POST uploads per upload |
|
| 1614 |
+* [Http] Added support for uploading multiple files using the same name (foo[0], foo[1]) |
|
| 1615 |
+* Adding more POST data operations for easier manipulation of POST data. |
|
| 1616 |
+* You can now set empty POST fields. |
|
| 1617 |
+* The body of a request is only shown on EntityEnclosingRequest objects that do not use POST files. |
|
| 1618 |
+* Split the Guzzle\Service\Inspector::validateConfig method into two methods. One to initialize when a command is created, and one to validate. |
|
| 1619 |
+* CS updates |
|
| 1620 |
+ |
|
| 1621 |
+## 2.6.2 - 2012-05-19 |
|
| 1622 |
+ |
|
| 1623 |
+* [Http] Better handling of nested scope requests in CurlMulti. Requests are now always prepares in the send() method rather than the addRequest() method. |
|
| 1624 |
+ |
|
| 1625 |
+## 2.6.1 - 2012-05-19 |
|
| 1626 |
+ |
|
| 1627 |
+* [BC] Removing 'path' support in service descriptions. Use 'uri'. |
|
| 1628 |
+* [BC] Guzzle\Service\Inspector::parseDocBlock is now protected. Adding getApiParamsForClass() with cache. |
|
| 1629 |
+* [BC] Removing Guzzle\Common\NullObject. Use https://github.com/mtdowling/NullObject if you need it. |
|
| 1630 |
+* [BC] Removing Guzzle\Common\XmlElement. |
|
| 1631 |
+* All commands, both dynamic and concrete, have ApiCommand objects. |
|
| 1632 |
+* Adding a fix for CurlMulti so that if all of the connections encounter some sort of curl error, then the loop exits. |
|
| 1633 |
+* Adding checks to EntityEnclosingRequest so that empty POST files and fields are ignored. |
|
| 1634 |
+* Making the method signature of Guzzle\Service\Builder\ServiceBuilder::factory more flexible. |
|
| 1635 |
+ |
|
| 1636 |
+## 2.6.0 - 2012-05-15 |
|
| 1637 |
+ |
|
| 1638 |
+* [BC] Moving Guzzle\Service\Builder to Guzzle\Service\Builder\ServiceBuilder |
|
| 1639 |
+* [BC] Executing a Command returns the result of the command rather than the command |
|
| 1640 |
+* [BC] Moving all HTTP parsing logic to Guzzle\Http\Parsers. Allows for faster C implementations if needed. |
|
| 1641 |
+* [BC] Changing the Guzzle\Http\Message\Response::setProtocol() method to accept a protocol and version in separate args. |
|
| 1642 |
+* [BC] Moving ResourceIterator* to Guzzle\Service\Resource |
|
| 1643 |
+* [BC] Completely refactored ResourceIterators to iterate over a cloned command object |
|
| 1644 |
+* [BC] Moved Guzzle\Http\UriTemplate to Guzzle\Http\Parser\UriTemplate\UriTemplate |
|
| 1645 |
+* [BC] Guzzle\Guzzle is now deprecated |
|
| 1646 |
+* Moving Guzzle\Common\Guzzle::inject to Guzzle\Common\Collection::inject |
|
| 1647 |
+* Adding Guzzle\Version class to give version information about Guzzle |
|
| 1648 |
+* Adding Guzzle\Http\Utils class to provide getDefaultUserAgent() and getHttpDate() |
|
| 1649 |
+* Adding Guzzle\Curl\CurlVersion to manage caching curl_version() data |
|
| 1650 |
+* ServiceDescription and ServiceBuilder are now cacheable using similar configs |
|
| 1651 |
+* Changing the format of XML and JSON service builder configs. Backwards compatible. |
|
| 1652 |
+* Cleaned up Cookie parsing |
|
| 1653 |
+* Trimming the default Guzzle User-Agent header |
|
| 1654 |
+* Adding a setOnComplete() method to Commands that is called when a command completes |
|
| 1655 |
+* Keeping track of requests that were mocked in the MockPlugin |
|
| 1656 |
+* Fixed a caching bug in the CacheAdapterFactory |
|
| 1657 |
+* Inspector objects can be injected into a Command object |
|
| 1658 |
+* Refactoring a lot of code and tests to be case insensitive when dealing with headers |
|
| 1659 |
+* Adding Guzzle\Http\Message\HeaderComparison for easy comparison of HTTP headers using a DSL |
|
| 1660 |
+* Adding the ability to set global option overrides to service builder configs |
|
| 1661 |
+* Adding the ability to include other service builder config files from within XML and JSON files |
|
| 1662 |
+* Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method. |
|
| 1663 |
+ |
|
| 1664 |
+## 2.5.0 - 2012-05-08 |
|
| 1665 |
+ |
|
| 1666 |
+* Major performance improvements |
|
| 1667 |
+* [BC] Simplifying Guzzle\Common\Collection. Please check to see if you are using features that are now deprecated. |
|
| 1668 |
+* [BC] Using a custom validation system that allows a flyweight implementation for much faster validation. No longer using Symfony2 Validation component. |
|
| 1669 |
+* [BC] No longer supporting "{{ }}" for injecting into command or UriTemplates. Use "{}"
|
|
| 1670 |
+* Added the ability to passed parameters to all requests created by a client |
|
| 1671 |
+* Added callback functionality to the ExponentialBackoffPlugin |
|
| 1672 |
+* Using microtime in ExponentialBackoffPlugin to allow more granular backoff strategies. |
|
| 1673 |
+* Rewinding request stream bodies when retrying requests |
|
| 1674 |
+* Exception is thrown when JSON response body cannot be decoded |
|
| 1675 |
+* Added configurable magic method calls to clients and commands. This is off by default. |
|
| 1676 |
+* Fixed a defect that added a hash to every parsed URL part |
|
| 1677 |
+* Fixed duplicate none generation for OauthPlugin. |
|
| 1678 |
+* Emitting an event each time a client is generated by a ServiceBuilder |
|
| 1679 |
+* Using an ApiParams object instead of a Collection for parameters of an ApiCommand |
|
| 1680 |
+* cache.* request parameters should be renamed to params.cache.* |
|
| 1681 |
+* Added the ability to set arbitrary curl options on requests (disable_wire, progress, etc.). See CurlHandle. |
|
| 1682 |
+* Added the ability to disable type validation of service descriptions |
|
| 1683 |
+* ServiceDescriptions and ServiceBuilders are now Serializable |
| 1 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,1450 +0,0 @@ |
| 1 |
-# Change Log |
|
| 2 |
- |
|
| 3 |
-Please refer to [UPGRADING](UPGRADING.md) guide for upgrading to a major version. |
|
| 4 |
- |
|
| 5 |
-## 7.2.0 - 2020-10-10 |
|
| 6 |
- |
|
| 7 |
-### Added |
|
| 8 |
- |
|
| 9 |
-- Support for PHP 8 [#2712](https://github.com/guzzle/guzzle/pull/2712), [#2715](https://github.com/guzzle/guzzle/pull/2715), [#2789](https://github.com/guzzle/guzzle/pull/2789) |
|
| 10 |
-- Support passing a body summarizer to the http errors middleware [#2795](https://github.com/guzzle/guzzle/pull/2795) |
|
| 11 |
- |
|
| 12 |
-### Fixed |
|
| 13 |
- |
|
| 14 |
-- Handle exceptions during response creation [#2591](https://github.com/guzzle/guzzle/pull/2591) |
|
| 15 |
-- Fix CURLOPT_ENCODING not to be overwritten [#2595](https://github.com/guzzle/guzzle/pull/2595) |
|
| 16 |
-- Make sure the Request always has a body object [#2804](https://github.com/guzzle/guzzle/pull/2804) |
|
| 17 |
- |
|
| 18 |
-### Changed |
|
| 19 |
- |
|
| 20 |
-- The `TooManyRedirectsException` has a response [#2660](https://github.com/guzzle/guzzle/pull/2660) |
|
| 21 |
-- Avoid "functions" from dependencies [#2712](https://github.com/guzzle/guzzle/pull/2712) |
|
| 22 |
- |
|
| 23 |
-### Deprecated |
|
| 24 |
- |
|
| 25 |
-- Using environment variable GUZZLE_CURL_SELECT_TIMEOUT [#2786](https://github.com/guzzle/guzzle/pull/2786) |
|
| 26 |
- |
|
| 27 |
-## 7.1.1 - 2020-09-30 |
|
| 28 |
- |
|
| 29 |
-### Fixed |
|
| 30 |
- |
|
| 31 |
-- Incorrect EOF detection for response body streams on Windows. |
|
| 32 |
- |
|
| 33 |
-### Changed |
|
| 34 |
- |
|
| 35 |
-- We dont connect curl `sink` on HEAD requests. |
|
| 36 |
-- Removed some PHP 5 workarounds |
|
| 37 |
- |
|
| 38 |
-## 7.1.0 - 2020-09-22 |
|
| 39 |
- |
|
| 40 |
-### Added |
|
| 41 |
- |
|
| 42 |
-- `GuzzleHttp\MessageFormatterInterface` |
|
| 43 |
- |
|
| 44 |
-### Fixed |
|
| 45 |
- |
|
| 46 |
-- Fixed issue that caused cookies with no value not to be stored. |
|
| 47 |
-- On redirects, we allow all safe methods like GET, HEAD and OPTIONS. |
|
| 48 |
-- Fixed logging on empty responses. |
|
| 49 |
-- Make sure MessageFormatter::format returns string |
|
| 50 |
- |
|
| 51 |
-### Deprecated |
|
| 52 |
- |
|
| 53 |
-- All functions in `GuzzleHttp` has been deprecated. Use static methods on `Utils` instead. |
|
| 54 |
-- `ClientInterface::getConfig()` |
|
| 55 |
-- `Client::getConfig()` |
|
| 56 |
-- `Client::__call()` |
|
| 57 |
-- `Utils::defaultCaBundle()` |
|
| 58 |
-- `CurlFactory::LOW_CURL_VERSION_NUMBER` |
|
| 59 |
- |
|
| 60 |
-## 7.0.1 - 2020-06-27 |
|
| 61 |
- |
|
| 62 |
-* Fix multiply defined functions fatal error [#2699](https://github.com/guzzle/guzzle/pull/2699) |
|
| 63 |
- |
|
| 64 |
-## 7.0.0 - 2020-06-27 |
|
| 65 |
- |
|
| 66 |
-No changes since 7.0.0-rc1. |
|
| 67 |
- |
|
| 68 |
-## 7.0.0-rc1 - 2020-06-15 |
|
| 69 |
- |
|
| 70 |
-### Changed |
|
| 71 |
- |
|
| 72 |
-* Use error level for logging errors in Middleware [#2629](https://github.com/guzzle/guzzle/pull/2629) |
|
| 73 |
-* Disabled IDN support by default and require ext-intl to use it [#2675](https://github.com/guzzle/guzzle/pull/2675) |
|
| 74 |
- |
|
| 75 |
-## 7.0.0-beta2 - 2020-05-25 |
|
| 76 |
- |
|
| 77 |
-### Added |
|
| 78 |
- |
|
| 79 |
-* Using `Utils` class instead of functions in the `GuzzleHttp` namespace. [#2546](https://github.com/guzzle/guzzle/pull/2546) |
|
| 80 |
-* `ClientInterface::MAJOR_VERSION` [#2583](https://github.com/guzzle/guzzle/pull/2583) |
|
| 81 |
- |
|
| 82 |
-### Changed |
|
| 83 |
- |
|
| 84 |
-* Avoid the `getenv` function when unsafe [#2531](https://github.com/guzzle/guzzle/pull/2531) |
|
| 85 |
-* Added real client methods [#2529](https://github.com/guzzle/guzzle/pull/2529) |
|
| 86 |
-* Avoid functions due to global install conflicts [#2546](https://github.com/guzzle/guzzle/pull/2546) |
|
| 87 |
-* Use Symfony intl-idn polyfill [#2550](https://github.com/guzzle/guzzle/pull/2550) |
|
| 88 |
-* Adding methods for HTTP verbs like `Client::get()`, `Client::head()`, `Client::patch()` etc [#2529](https://github.com/guzzle/guzzle/pull/2529) |
|
| 89 |
-* `ConnectException` extends `TransferException` [#2541](https://github.com/guzzle/guzzle/pull/2541) |
|
| 90 |
-* Updated the default User Agent to "GuzzleHttp/7" [#2654](https://github.com/guzzle/guzzle/pull/2654) |
|
| 91 |
- |
|
| 92 |
-### Fixed |
|
| 93 |
- |
|
| 94 |
-* Various intl icu issues [#2626](https://github.com/guzzle/guzzle/pull/2626) |
|
| 95 |
- |
|
| 96 |
-### Removed |
|
| 97 |
- |
|
| 98 |
-* Pool option `pool_size` [#2528](https://github.com/guzzle/guzzle/pull/2528) |
|
| 99 |
- |
|
| 100 |
-## 7.0.0-beta1 - 2019-12-30 |
|
| 101 |
- |
|
| 102 |
-The diff might look very big but 95% of Guzzle users will be able to upgrade without modification. |
|
| 103 |
-Please see [the upgrade document](UPGRADING.md) that describes all BC breaking changes. |
|
| 104 |
- |
|
| 105 |
-### Added |
|
| 106 |
- |
|
| 107 |
-* Implement PSR-18 and dropped PHP 5 support [#2421](https://github.com/guzzle/guzzle/pull/2421) [#2474](https://github.com/guzzle/guzzle/pull/2474) |
|
| 108 |
-* PHP 7 types [#2442](https://github.com/guzzle/guzzle/pull/2442) [#2449](https://github.com/guzzle/guzzle/pull/2449) [#2466](https://github.com/guzzle/guzzle/pull/2466) [#2497](https://github.com/guzzle/guzzle/pull/2497) [#2499](https://github.com/guzzle/guzzle/pull/2499) |
|
| 109 |
-* IDN support for redirects [2424](https://github.com/guzzle/guzzle/pull/2424) |
|
| 110 |
- |
|
| 111 |
-### Changed |
|
| 112 |
- |
|
| 113 |
-* Dont allow passing null as third argument to `BadResponseException::__construct()` [#2427](https://github.com/guzzle/guzzle/pull/2427) |
|
| 114 |
-* Use SAPI constant instead of method call [#2450](https://github.com/guzzle/guzzle/pull/2450) |
|
| 115 |
-* Use native function invocation [#2444](https://github.com/guzzle/guzzle/pull/2444) |
|
| 116 |
-* Better defaults for PHP installations with old ICU lib [2454](https://github.com/guzzle/guzzle/pull/2454) |
|
| 117 |
-* Added visibility to all constants [#2462](https://github.com/guzzle/guzzle/pull/2462) |
|
| 118 |
-* Dont allow passing `null` as URI to `Client::request()` and `Client::requestAsync()` [#2461](https://github.com/guzzle/guzzle/pull/2461) |
|
| 119 |
-* Widen the exception argument to throwable [#2495](https://github.com/guzzle/guzzle/pull/2495) |
|
| 120 |
- |
|
| 121 |
-### Fixed |
|
| 122 |
- |
|
| 123 |
-* Logging when Promise rejected with a string [#2311](https://github.com/guzzle/guzzle/pull/2311) |
|
| 124 |
- |
|
| 125 |
-### Removed |
|
| 126 |
- |
|
| 127 |
-* Class `SeekException` [#2162](https://github.com/guzzle/guzzle/pull/2162) |
|
| 128 |
-* `RequestException::getResponseBodySummary()` [#2425](https://github.com/guzzle/guzzle/pull/2425) |
|
| 129 |
-* `CookieJar::getCookieValue()` [#2433](https://github.com/guzzle/guzzle/pull/2433) |
|
| 130 |
-* `uri_template()` and `UriTemplate` [#2440](https://github.com/guzzle/guzzle/pull/2440) |
|
| 131 |
-* Request options `save_to` and `exceptions` [#2464](https://github.com/guzzle/guzzle/pull/2464) |
|
| 132 |
- |
|
| 133 |
-## 6.5.2 - 2019-12-23 |
|
| 134 |
- |
|
| 135 |
-* idn_to_ascii() fix for old PHP versions [#2489](https://github.com/guzzle/guzzle/pull/2489) |
|
| 136 |
- |
|
| 137 |
-## 6.5.1 - 2019-12-21 |
|
| 138 |
- |
|
| 139 |
-* Better defaults for PHP installations with old ICU lib [#2454](https://github.com/guzzle/guzzle/pull/2454) |
|
| 140 |
-* IDN support for redirects [#2424](https://github.com/guzzle/guzzle/pull/2424) |
|
| 141 |
- |
|
| 142 |
-## 6.5.0 - 2019-12-07 |
|
| 143 |
- |
|
| 144 |
-* Improvement: Added support for reset internal queue in MockHandler. [#2143](https://github.com/guzzle/guzzle/pull/2143) |
|
| 145 |
-* Improvement: Added support to pass arbitrary options to `curl_multi_init`. [#2287](https://github.com/guzzle/guzzle/pull/2287) |
|
| 146 |
-* Fix: Gracefully handle passing `null` to the `header` option. [#2132](https://github.com/guzzle/guzzle/pull/2132) |
|
| 147 |
-* Fix: `RetryMiddleware` did not do exponential delay between retires due unit mismatch. [#2132](https://github.com/guzzle/guzzle/pull/2132) |
|
| 148 |
-* Fix: Prevent undefined offset when using array for ssl_key options. [#2348](https://github.com/guzzle/guzzle/pull/2348) |
|
| 149 |
-* Deprecated `ClientInterface::VERSION` |
|
| 150 |
- |
|
| 151 |
-## 6.4.1 - 2019-10-23 |
|
| 152 |
- |
|
| 153 |
-* No `guzzle.phar` was created in 6.4.0 due expired API token. This release will fix that |
|
| 154 |
-* Added `parent::__construct()` to `FileCookieJar` and `SessionCookieJar` |
|
| 155 |
- |
|
| 156 |
-## 6.4.0 - 2019-10-23 |
|
| 157 |
- |
|
| 158 |
-* Improvement: Improved error messages when using curl < 7.21.2 [#2108](https://github.com/guzzle/guzzle/pull/2108) |
|
| 159 |
-* Fix: Test if response is readable before returning a summary in `RequestException::getResponseBodySummary()` [#2081](https://github.com/guzzle/guzzle/pull/2081) |
|
| 160 |
-* Fix: Add support for GUZZLE_CURL_SELECT_TIMEOUT environment variable [#2161](https://github.com/guzzle/guzzle/pull/2161) |
|
| 161 |
-* Improvement: Added `GuzzleHttp\Exception\InvalidArgumentException` [#2163](https://github.com/guzzle/guzzle/pull/2163) |
|
| 162 |
-* Improvement: Added `GuzzleHttp\_current_time()` to use `hrtime()` if that function exists. [#2242](https://github.com/guzzle/guzzle/pull/2242) |
|
| 163 |
-* Improvement: Added curl's `appconnect_time` in `TransferStats` [#2284](https://github.com/guzzle/guzzle/pull/2284) |
|
| 164 |
-* Improvement: Make GuzzleException extend Throwable wherever it's available [#2273](https://github.com/guzzle/guzzle/pull/2273) |
|
| 165 |
-* Fix: Prevent concurrent writes to file when saving `CookieJar` [#2335](https://github.com/guzzle/guzzle/pull/2335) |
|
| 166 |
-* Improvement: Update `MockHandler` so we can test transfer time [#2362](https://github.com/guzzle/guzzle/pull/2362) |
|
| 167 |
- |
|
| 168 |
-## 6.3.3 - 2018-04-22 |
|
| 169 |
- |
|
| 170 |
-* Fix: Default headers when decode_content is specified |
|
| 171 |
- |
|
| 172 |
- |
|
| 173 |
-## 6.3.2 - 2018-03-26 |
|
| 174 |
- |
|
| 175 |
-* Fix: Release process |
|
| 176 |
- |
|
| 177 |
- |
|
| 178 |
-## 6.3.1 - 2018-03-26 |
|
| 179 |
- |
|
| 180 |
-* Bug fix: Parsing 0 epoch expiry times in cookies [#2014](https://github.com/guzzle/guzzle/pull/2014) |
|
| 181 |
-* Improvement: Better ConnectException detection [#2012](https://github.com/guzzle/guzzle/pull/2012) |
|
| 182 |
-* Bug fix: Malformed domain that contains a "/" [#1999](https://github.com/guzzle/guzzle/pull/1999) |
|
| 183 |
-* Bug fix: Undefined offset when a cookie has no first key-value pair [#1998](https://github.com/guzzle/guzzle/pull/1998) |
|
| 184 |
-* Improvement: Support PHPUnit 6 [#1953](https://github.com/guzzle/guzzle/pull/1953) |
|
| 185 |
-* Bug fix: Support empty headers [#1915](https://github.com/guzzle/guzzle/pull/1915) |
|
| 186 |
-* Bug fix: Ignore case during header modifications [#1916](https://github.com/guzzle/guzzle/pull/1916) |
|
| 187 |
- |
|
| 188 |
-+ Minor code cleanups, documentation fixes and clarifications. |
|
| 189 |
- |
|
| 190 |
- |
|
| 191 |
-## 6.3.0 - 2017-06-22 |
|
| 192 |
- |
|
| 193 |
-* Feature: force IP resolution (ipv4 or ipv6) [#1608](https://github.com/guzzle/guzzle/pull/1608), [#1659](https://github.com/guzzle/guzzle/pull/1659) |
|
| 194 |
-* Improvement: Don't include summary in exception message when body is empty [#1621](https://github.com/guzzle/guzzle/pull/1621) |
|
| 195 |
-* Improvement: Handle `on_headers` option in MockHandler [#1580](https://github.com/guzzle/guzzle/pull/1580) |
|
| 196 |
-* Improvement: Added SUSE Linux CA path [#1609](https://github.com/guzzle/guzzle/issues/1609) |
|
| 197 |
-* Improvement: Use class reference for getting the name of the class instead of using hardcoded strings [#1641](https://github.com/guzzle/guzzle/pull/1641) |
|
| 198 |
-* Feature: Added `read_timeout` option [#1611](https://github.com/guzzle/guzzle/pull/1611) |
|
| 199 |
-* Bug fix: PHP 7.x fixes [#1685](https://github.com/guzzle/guzzle/pull/1685), [#1686](https://github.com/guzzle/guzzle/pull/1686), [#1811](https://github.com/guzzle/guzzle/pull/1811) |
|
| 200 |
-* Deprecation: BadResponseException instantiation without a response [#1642](https://github.com/guzzle/guzzle/pull/1642) |
|
| 201 |
-* Feature: Added NTLM auth [#1569](https://github.com/guzzle/guzzle/pull/1569) |
|
| 202 |
-* Feature: Track redirect HTTP status codes [#1711](https://github.com/guzzle/guzzle/pull/1711) |
|
| 203 |
-* Improvement: Check handler type during construction [#1745](https://github.com/guzzle/guzzle/pull/1745) |
|
| 204 |
-* Improvement: Always include the Content-Length if there's a body [#1721](https://github.com/guzzle/guzzle/pull/1721) |
|
| 205 |
-* Feature: Added convenience method to access a cookie by name [#1318](https://github.com/guzzle/guzzle/pull/1318) |
|
| 206 |
-* Bug fix: Fill `CURLOPT_CAPATH` and `CURLOPT_CAINFO` properly [#1684](https://github.com/guzzle/guzzle/pull/1684) |
|
| 207 |
-* Improvement: Use `\GuzzleHttp\Promise\rejection_for` function instead of object init [#1827](https://github.com/guzzle/guzzle/pull/1827) |
|
| 208 |
- |
|
| 209 |
- |
|
| 210 |
-+ Minor code cleanups, documentation fixes and clarifications. |
|
| 211 |
- |
|
| 212 |
-## 6.2.3 - 2017-02-28 |
|
| 213 |
- |
|
| 214 |
-* Fix deprecations with guzzle/psr7 version 1.4 |
|
| 215 |
- |
|
| 216 |
-## 6.2.2 - 2016-10-08 |
|
| 217 |
- |
|
| 218 |
-* Allow to pass nullable Response to delay callable |
|
| 219 |
-* Only add scheme when host is present |
|
| 220 |
-* Fix drain case where content-length is the literal string zero |
|
| 221 |
-* Obfuscate in-URL credentials in exceptions |
|
| 222 |
- |
|
| 223 |
-## 6.2.1 - 2016-07-18 |
|
| 224 |
- |
|
| 225 |
-* Address HTTP_PROXY security vulnerability, CVE-2016-5385: |
|
| 226 |
- https://httpoxy.org/ |
|
| 227 |
-* Fixing timeout bug with StreamHandler: |
|
| 228 |
- https://github.com/guzzle/guzzle/pull/1488 |
|
| 229 |
-* Only read up to `Content-Length` in PHP StreamHandler to avoid timeouts when |
|
| 230 |
- a server does not honor `Connection: close`. |
|
| 231 |
-* Ignore URI fragment when sending requests. |
|
| 232 |
- |
|
| 233 |
-## 6.2.0 - 2016-03-21 |
|
| 234 |
- |
|
| 235 |
-* Feature: added `GuzzleHttp\json_encode` and `GuzzleHttp\json_decode`. |
|
| 236 |
- https://github.com/guzzle/guzzle/pull/1389 |
|
| 237 |
-* Bug fix: Fix sleep calculation when waiting for delayed requests. |
|
| 238 |
- https://github.com/guzzle/guzzle/pull/1324 |
|
| 239 |
-* Feature: More flexible history containers. |
|
| 240 |
- https://github.com/guzzle/guzzle/pull/1373 |
|
| 241 |
-* Bug fix: defer sink stream opening in StreamHandler. |
|
| 242 |
- https://github.com/guzzle/guzzle/pull/1377 |
|
| 243 |
-* Bug fix: do not attempt to escape cookie values. |
|
| 244 |
- https://github.com/guzzle/guzzle/pull/1406 |
|
| 245 |
-* Feature: report original content encoding and length on decoded responses. |
|
| 246 |
- https://github.com/guzzle/guzzle/pull/1409 |
|
| 247 |
-* Bug fix: rewind seekable request bodies before dispatching to cURL. |
|
| 248 |
- https://github.com/guzzle/guzzle/pull/1422 |
|
| 249 |
-* Bug fix: provide an empty string to `http_build_query` for HHVM workaround. |
|
| 250 |
- https://github.com/guzzle/guzzle/pull/1367 |
|
| 251 |
- |
|
| 252 |
-## 6.1.1 - 2015-11-22 |
|
| 253 |
- |
|
| 254 |
-* Bug fix: Proxy::wrapSync() now correctly proxies to the appropriate handler |
|
| 255 |
- https://github.com/guzzle/guzzle/commit/911bcbc8b434adce64e223a6d1d14e9a8f63e4e4 |
|
| 256 |
-* Feature: HandlerStack is now more generic. |
|
| 257 |
- https://github.com/guzzle/guzzle/commit/f2102941331cda544745eedd97fc8fd46e1ee33e |
|
| 258 |
-* Bug fix: setting verify to false in the StreamHandler now disables peer |
|
| 259 |
- verification. https://github.com/guzzle/guzzle/issues/1256 |
|
| 260 |
-* Feature: Middleware now uses an exception factory, including more error |
|
| 261 |
- context. https://github.com/guzzle/guzzle/pull/1282 |
|
| 262 |
-* Feature: better support for disabled functions. |
|
| 263 |
- https://github.com/guzzle/guzzle/pull/1287 |
|
| 264 |
-* Bug fix: fixed regression where MockHandler was not using `sink`. |
|
| 265 |
- https://github.com/guzzle/guzzle/pull/1292 |
|
| 266 |
- |
|
| 267 |
-## 6.1.0 - 2015-09-08 |
|
| 268 |
- |
|
| 269 |
-* Feature: Added the `on_stats` request option to provide access to transfer |
|
| 270 |
- statistics for requests. https://github.com/guzzle/guzzle/pull/1202 |
|
| 271 |
-* Feature: Added the ability to persist session cookies in CookieJars. |
|
| 272 |
- https://github.com/guzzle/guzzle/pull/1195 |
|
| 273 |
-* Feature: Some compatibility updates for Google APP Engine |
|
| 274 |
- https://github.com/guzzle/guzzle/pull/1216 |
|
| 275 |
-* Feature: Added support for NO_PROXY to prevent the use of a proxy based on |
|
| 276 |
- a simple set of rules. https://github.com/guzzle/guzzle/pull/1197 |
|
| 277 |
-* Feature: Cookies can now contain square brackets. |
|
| 278 |
- https://github.com/guzzle/guzzle/pull/1237 |
|
| 279 |
-* Bug fix: Now correctly parsing `=` inside of quotes in Cookies. |
|
| 280 |
- https://github.com/guzzle/guzzle/pull/1232 |
|
| 281 |
-* Bug fix: Cusotm cURL options now correctly override curl options of the |
|
| 282 |
- same name. https://github.com/guzzle/guzzle/pull/1221 |
|
| 283 |
-* Bug fix: Content-Type header is now added when using an explicitly provided |
|
| 284 |
- multipart body. https://github.com/guzzle/guzzle/pull/1218 |
|
| 285 |
-* Bug fix: Now ignoring Set-Cookie headers that have no name. |
|
| 286 |
-* Bug fix: Reason phrase is no longer cast to an int in some cases in the |
|
| 287 |
- cURL handler. https://github.com/guzzle/guzzle/pull/1187 |
|
| 288 |
-* Bug fix: Remove the Authorization header when redirecting if the Host |
|
| 289 |
- header changes. https://github.com/guzzle/guzzle/pull/1207 |
|
| 290 |
-* Bug fix: Cookie path matching fixes |
|
| 291 |
- https://github.com/guzzle/guzzle/issues/1129 |
|
| 292 |
-* Bug fix: Fixing the cURL `body_as_string` setting |
|
| 293 |
- https://github.com/guzzle/guzzle/pull/1201 |
|
| 294 |
-* Bug fix: quotes are no longer stripped when parsing cookies. |
|
| 295 |
- https://github.com/guzzle/guzzle/issues/1172 |
|
| 296 |
-* Bug fix: `form_params` and `query` now always uses the `&` separator. |
|
| 297 |
- https://github.com/guzzle/guzzle/pull/1163 |
|
| 298 |
-* Bug fix: Adding a Content-Length to PHP stream wrapper requests if not set. |
|
| 299 |
- https://github.com/guzzle/guzzle/pull/1189 |
|
| 300 |
- |
|
| 301 |
-## 6.0.2 - 2015-07-04 |
|
| 302 |
- |
|
| 303 |
-* Fixed a memory leak in the curl handlers in which references to callbacks |
|
| 304 |
- were not being removed by `curl_reset`. |
|
| 305 |
-* Cookies are now extracted properly before redirects. |
|
| 306 |
-* Cookies now allow more character ranges. |
|
| 307 |
-* Decoded Content-Encoding responses are now modified to correctly reflect |
|
| 308 |
- their state if the encoding was automatically removed by a handler. This |
|
| 309 |
- means that the `Content-Encoding` header may be removed an the |
|
| 310 |
- `Content-Length` modified to reflect the message size after removing the |
|
| 311 |
- encoding. |
|
| 312 |
-* Added a more explicit error message when trying to use `form_params` and |
|
| 313 |
- `multipart` in the same request. |
|
| 314 |
-* Several fixes for HHVM support. |
|
| 315 |
-* Functions are now conditionally required using an additional level of |
|
| 316 |
- indirection to help with global Composer installations. |
|
| 317 |
- |
|
| 318 |
-## 6.0.1 - 2015-05-27 |
|
| 319 |
- |
|
| 320 |
-* Fixed a bug with serializing the `query` request option where the `&` |
|
| 321 |
- separator was missing. |
|
| 322 |
-* Added a better error message for when `body` is provided as an array. Please |
|
| 323 |
- use `form_params` or `multipart` instead. |
|
| 324 |
-* Various doc fixes. |
|
| 325 |
- |
|
| 326 |
-## 6.0.0 - 2015-05-26 |
|
| 327 |
- |
|
| 328 |
-* See the UPGRADING.md document for more information. |
|
| 329 |
-* Added `multipart` and `form_params` request options. |
|
| 330 |
-* Added `synchronous` request option. |
|
| 331 |
-* Added the `on_headers` request option. |
|
| 332 |
-* Fixed `expect` handling. |
|
| 333 |
-* No longer adding default middlewares in the client ctor. These need to be |
|
| 334 |
- present on the provided handler in order to work. |
|
| 335 |
-* Requests are no longer initiated when sending async requests with the |
|
| 336 |
- CurlMultiHandler. This prevents unexpected recursion from requests completing |
|
| 337 |
- while ticking the cURL loop. |
|
| 338 |
-* Removed the semantics of setting `default` to `true`. This is no longer |
|
| 339 |
- required now that the cURL loop is not ticked for async requests. |
|
| 340 |
-* Added request and response logging middleware. |
|
| 341 |
-* No longer allowing self signed certificates when using the StreamHandler. |
|
| 342 |
-* Ensuring that `sink` is valid if saving to a file. |
|
| 343 |
-* Request exceptions now include a "handler context" which provides handler |
|
| 344 |
- specific contextual information. |
|
| 345 |
-* Added `GuzzleHttp\RequestOptions` to allow request options to be applied |
|
| 346 |
- using constants. |
|
| 347 |
-* `$maxHandles` has been removed from CurlMultiHandler. |
|
| 348 |
-* `MultipartPostBody` is now part of the `guzzlehttp/psr7` package. |
|
| 349 |
- |
|
| 350 |
-## 5.3.0 - 2015-05-19 |
|
| 351 |
- |
|
| 352 |
-* Mock now supports `save_to` |
|
| 353 |
-* Marked `AbstractRequestEvent::getTransaction()` as public. |
|
| 354 |
-* Fixed a bug in which multiple headers using different casing would overwrite |
|
| 355 |
- previous headers in the associative array. |
|
| 356 |
-* Added `Utils::getDefaultHandler()` |
|
| 357 |
-* Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated. |
|
| 358 |
-* URL scheme is now always lowercased. |
|
| 359 |
- |
|
| 360 |
-## 6.0.0-beta.1 |
|
| 361 |
- |
|
| 362 |
-* Requires PHP >= 5.5 |
|
| 363 |
-* Updated to use PSR-7 |
|
| 364 |
- * Requires immutable messages, which basically means an event based system |
|
| 365 |
- owned by a request instance is no longer possible. |
|
| 366 |
- * Utilizing the [Guzzle PSR-7 package](https://github.com/guzzle/psr7). |
|
| 367 |
- * Removed the dependency on `guzzlehttp/streams`. These stream abstractions |
|
| 368 |
- are available in the `guzzlehttp/psr7` package under the `GuzzleHttp\Psr7` |
|
| 369 |
- namespace. |
|
| 370 |
-* Added middleware and handler system |
|
| 371 |
- * Replaced the Guzzle event and subscriber system with a middleware system. |
|
| 372 |
- * No longer depends on RingPHP, but rather places the HTTP handlers directly |
|
| 373 |
- in Guzzle, operating on PSR-7 messages. |
|
| 374 |
- * Retry logic is now encapsulated in `GuzzleHttp\Middleware::retry`, which |
|
| 375 |
- means the `guzzlehttp/retry-subscriber` is now obsolete. |
|
| 376 |
- * Mocking responses is now handled using `GuzzleHttp\Handler\MockHandler`. |
|
| 377 |
-* Asynchronous responses |
|
| 378 |
- * No longer supports the `future` request option to send an async request. |
|
| 379 |
- Instead, use one of the `*Async` methods of a client (e.g., `requestAsync`, |
|
| 380 |
- `getAsync`, etc.). |
|
| 381 |
- * Utilizing `GuzzleHttp\Promise` instead of React's promise library to avoid |
|
| 382 |
- recursion required by chaining and forwarding react promises. See |
|
| 383 |
- https://github.com/guzzle/promises |
|
| 384 |
- * Added `requestAsync` and `sendAsync` to send request asynchronously. |
|
| 385 |
- * Added magic methods for `getAsync()`, `postAsync()`, etc. to send requests |
|
| 386 |
- asynchronously. |
|
| 387 |
-* Request options |
|
| 388 |
- * POST and form updates |
|
| 389 |
- * Added the `form_fields` and `form_files` request options. |
|
| 390 |
- * Removed the `GuzzleHttp\Post` namespace. |
|
| 391 |
- * The `body` request option no longer accepts an array for POST requests. |
|
| 392 |
- * The `exceptions` request option has been deprecated in favor of the |
|
| 393 |
- `http_errors` request options. |
|
| 394 |
- * The `save_to` request option has been deprecated in favor of `sink` request |
|
| 395 |
- option. |
|
| 396 |
-* Clients no longer accept an array of URI template string and variables for |
|
| 397 |
- URI variables. You will need to expand URI templates before passing them |
|
| 398 |
- into a client constructor or request method. |
|
| 399 |
-* Client methods `get()`, `post()`, `put()`, `patch()`, `options()`, etc. are |
|
| 400 |
- now magic methods that will send synchronous requests. |
|
| 401 |
-* Replaced `Utils.php` with plain functions in `functions.php`. |
|
| 402 |
-* Removed `GuzzleHttp\Collection`. |
|
| 403 |
-* Removed `GuzzleHttp\BatchResults`. Batched pool results are now returned as |
|
| 404 |
- an array. |
|
| 405 |
-* Removed `GuzzleHttp\Query`. Query string handling is now handled using an |
|
| 406 |
- associative array passed into the `query` request option. The query string |
|
| 407 |
- is serialized using PHP's `http_build_query`. If you need more control, you |
|
| 408 |
- can pass the query string in as a string. |
|
| 409 |
-* `GuzzleHttp\QueryParser` has been replaced with the |
|
| 410 |
- `GuzzleHttp\Psr7\parse_query`. |
|
| 411 |
- |
|
| 412 |
-## 5.2.0 - 2015-01-27 |
|
| 413 |
- |
|
| 414 |
-* Added `AppliesHeadersInterface` to make applying headers to a request based |
|
| 415 |
- on the body more generic and not specific to `PostBodyInterface`. |
|
| 416 |
-* Reduced the number of stack frames needed to send requests. |
|
| 417 |
-* Nested futures are now resolved in the client rather than the RequestFsm |
|
| 418 |
-* Finishing state transitions is now handled in the RequestFsm rather than the |
|
| 419 |
- RingBridge. |
|
| 420 |
-* Added a guard in the Pool class to not use recursion for request retries. |
|
| 421 |
- |
|
| 422 |
-## 5.1.0 - 2014-12-19 |
|
| 423 |
- |
|
| 424 |
-* Pool class no longer uses recursion when a request is intercepted. |
|
| 425 |
-* The size of a Pool can now be dynamically adjusted using a callback. |
|
| 426 |
- See https://github.com/guzzle/guzzle/pull/943. |
|
| 427 |
-* Setting a request option to `null` when creating a request with a client will |
|
| 428 |
- ensure that the option is not set. This allows you to overwrite default |
|
| 429 |
- request options on a per-request basis. |
|
| 430 |
- See https://github.com/guzzle/guzzle/pull/937. |
|
| 431 |
-* Added the ability to limit which protocols are allowed for redirects by |
|
| 432 |
- specifying a `protocols` array in the `allow_redirects` request option. |
|
| 433 |
-* Nested futures due to retries are now resolved when waiting for synchronous |
|
| 434 |
- responses. See https://github.com/guzzle/guzzle/pull/947. |
|
| 435 |
-* `"0"` is now an allowed URI path. See |
|
| 436 |
- https://github.com/guzzle/guzzle/pull/935. |
|
| 437 |
-* `Query` no longer typehints on the `$query` argument in the constructor, |
|
| 438 |
- allowing for strings and arrays. |
|
| 439 |
-* Exceptions thrown in the `end` event are now correctly wrapped with Guzzle |
|
| 440 |
- specific exceptions if necessary. |
|
| 441 |
- |
|
| 442 |
-## 5.0.3 - 2014-11-03 |
|
| 443 |
- |
|
| 444 |
-This change updates query strings so that they are treated as un-encoded values |
|
| 445 |
-by default where the value represents an un-encoded value to send over the |
|
| 446 |
-wire. A Query object then encodes the value before sending over the wire. This |
|
| 447 |
-means that even value query string values (e.g., ":") are url encoded. This |
|
| 448 |
-makes the Query class match PHP's http_build_query function. However, if you |
|
| 449 |
-want to send requests over the wire using valid query string characters that do |
|
| 450 |
-not need to be encoded, then you can provide a string to Url::setQuery() and |
|
| 451 |
-pass true as the second argument to specify that the query string is a raw |
|
| 452 |
-string that should not be parsed or encoded (unless a call to getQuery() is |
|
| 453 |
-subsequently made, forcing the query-string to be converted into a Query |
|
| 454 |
-object). |
|
| 455 |
- |
|
| 456 |
-## 5.0.2 - 2014-10-30 |
|
| 457 |
- |
|
| 458 |
-* Added a trailing `\r\n` to multipart/form-data payloads. See |
|
| 459 |
- https://github.com/guzzle/guzzle/pull/871 |
|
| 460 |
-* Added a `GuzzleHttp\Pool::send()` convenience method to match the docs. |
|
| 461 |
-* Status codes are now returned as integers. See |
|
| 462 |
- https://github.com/guzzle/guzzle/issues/881 |
|
| 463 |
-* No longer overwriting an existing `application/x-www-form-urlencoded` header |
|
| 464 |
- when sending POST requests, allowing for customized headers. See |
|
| 465 |
- https://github.com/guzzle/guzzle/issues/877 |
|
| 466 |
-* Improved path URL serialization. |
|
| 467 |
- |
|
| 468 |
- * No longer double percent-encoding characters in the path or query string if |
|
| 469 |
- they are already encoded. |
|
| 470 |
- * Now properly encoding the supplied path to a URL object, instead of only |
|
| 471 |
- encoding ' ' and '?'. |
|
| 472 |
- * Note: This has been changed in 5.0.3 to now encode query string values by |
|
| 473 |
- default unless the `rawString` argument is provided when setting the query |
|
| 474 |
- string on a URL: Now allowing many more characters to be present in the |
|
| 475 |
- query string without being percent encoded. See https://tools.ietf.org/html/rfc3986#appendix-A |
|
| 476 |
- |
|
| 477 |
-## 5.0.1 - 2014-10-16 |
|
| 478 |
- |
|
| 479 |
-Bugfix release. |
|
| 480 |
- |
|
| 481 |
-* Fixed an issue where connection errors still returned response object in |
|
| 482 |
- error and end events event though the response is unusable. This has been |
|
| 483 |
- corrected so that a response is not returned in the `getResponse` method of |
|
| 484 |
- these events if the response did not complete. https://github.com/guzzle/guzzle/issues/867 |
|
| 485 |
-* Fixed an issue where transfer statistics were not being populated in the |
|
| 486 |
- RingBridge. https://github.com/guzzle/guzzle/issues/866 |
|
| 487 |
- |
|
| 488 |
-## 5.0.0 - 2014-10-12 |
|
| 489 |
- |
|
| 490 |
-Adding support for non-blocking responses and some minor API cleanup. |
|
| 491 |
- |
|
| 492 |
-### New Features |
|
| 493 |
- |
|
| 494 |
-* Added support for non-blocking responses based on `guzzlehttp/guzzle-ring`. |
|
| 495 |
-* Added a public API for creating a default HTTP adapter. |
|
| 496 |
-* Updated the redirect plugin to be non-blocking so that redirects are sent |
|
| 497 |
- concurrently. Other plugins like this can now be updated to be non-blocking. |
|
| 498 |
-* Added a "progress" event so that you can get upload and download progress |
|
| 499 |
- events. |
|
| 500 |
-* Added `GuzzleHttp\Pool` which implements FutureInterface and transfers |
|
| 501 |
- requests concurrently using a capped pool size as efficiently as possible. |
|
| 502 |
-* Added `hasListeners()` to EmitterInterface. |
|
| 503 |
-* Removed `GuzzleHttp\ClientInterface::sendAll` and marked |
|
| 504 |
- `GuzzleHttp\Client::sendAll` as deprecated (it's still there, just not the |
|
| 505 |
- recommended way). |
|
| 506 |
- |
|
| 507 |
-### Breaking changes |
|
| 508 |
- |
|
| 509 |
-The breaking changes in this release are relatively minor. The biggest thing to |
|
| 510 |
-look out for is that request and response objects no longer implement fluent |
|
| 511 |
-interfaces. |
|
| 512 |
- |
|
| 513 |
-* Removed the fluent interfaces (i.e., `return $this`) from requests, |
|
| 514 |
- responses, `GuzzleHttp\Collection`, `GuzzleHttp\Url`, |
|
| 515 |
- `GuzzleHttp\Query`, `GuzzleHttp\Post\PostBody`, and |
|
| 516 |
- `GuzzleHttp\Cookie\SetCookie`. This blog post provides a good outline of |
|
| 517 |
- why I did this: https://ocramius.github.io/blog/fluent-interfaces-are-evil/. |
|
| 518 |
- This also makes the Guzzle message interfaces compatible with the current |
|
| 519 |
- PSR-7 message proposal. |
|
| 520 |
-* Removed "functions.php", so that Guzzle is truly PSR-4 compliant. Except |
|
| 521 |
- for the HTTP request functions from function.php, these functions are now |
|
| 522 |
- implemented in `GuzzleHttp\Utils` using camelCase. `GuzzleHttp\json_decode` |
|
| 523 |
- moved to `GuzzleHttp\Utils::jsonDecode`. `GuzzleHttp\get_path` moved to |
|
| 524 |
- `GuzzleHttp\Utils::getPath`. `GuzzleHttp\set_path` moved to |
|
| 525 |
- `GuzzleHttp\Utils::setPath`. `GuzzleHttp\batch` should now be |
|
| 526 |
- `GuzzleHttp\Pool::batch`, which returns an `objectStorage`. Using functions.php |
|
| 527 |
- caused problems for many users: they aren't PSR-4 compliant, require an |
|
| 528 |
- explicit include, and needed an if-guard to ensure that the functions are not |
|
| 529 |
- declared multiple times. |
|
| 530 |
-* Rewrote adapter layer. |
|
| 531 |
- * Removing all classes from `GuzzleHttp\Adapter`, these are now |
|
| 532 |
- implemented as callables that are stored in `GuzzleHttp\Ring\Client`. |
|
| 533 |
- * Removed the concept of "parallel adapters". Sending requests serially or |
|
| 534 |
- concurrently is now handled using a single adapter. |
|
| 535 |
- * Moved `GuzzleHttp\Adapter\Transaction` to `GuzzleHttp\Transaction`. The |
|
| 536 |
- Transaction object now exposes the request, response, and client as public |
|
| 537 |
- properties. The getters and setters have been removed. |
|
| 538 |
-* Removed the "headers" event. This event was only useful for changing the |
|
| 539 |
- body a response once the headers of the response were known. You can implement |
|
| 540 |
- a similar behavior in a number of ways. One example might be to use a |
|
| 541 |
- FnStream that has access to the transaction being sent. For example, when the |
|
| 542 |
- first byte is written, you could check if the response headers match your |
|
| 543 |
- expectations, and if so, change the actual stream body that is being |
|
| 544 |
- written to. |
|
| 545 |
-* Removed the `asArray` parameter from |
|
| 546 |
- `GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header |
|
| 547 |
- value as an array, then use the newly added `getHeaderAsArray()` method of |
|
| 548 |
- `MessageInterface`. This change makes the Guzzle interfaces compatible with |
|
| 549 |
- the PSR-7 interfaces. |
|
| 550 |
-* `GuzzleHttp\Message\MessageFactory` no longer allows subclasses to add |
|
| 551 |
- custom request options using double-dispatch (this was an implementation |
|
| 552 |
- detail). Instead, you should now provide an associative array to the |
|
| 553 |
- constructor which is a mapping of the request option name mapping to a |
|
| 554 |
- function that applies the option value to a request. |
|
| 555 |
-* Removed the concept of "throwImmediately" from exceptions and error events. |
|
| 556 |
- This control mechanism was used to stop a transfer of concurrent requests |
|
| 557 |
- from completing. This can now be handled by throwing the exception or by |
|
| 558 |
- cancelling a pool of requests or each outstanding future request individually. |
|
| 559 |
-* Updated to "GuzzleHttp\Streams" 3.0. |
|
| 560 |
- * `GuzzleHttp\Stream\StreamInterface::getContents()` no longer accepts a |
|
| 561 |
- `maxLen` parameter. This update makes the Guzzle streams project |
|
| 562 |
- compatible with the current PSR-7 proposal. |
|
| 563 |
- * `GuzzleHttp\Stream\Stream::__construct`, |
|
| 564 |
- `GuzzleHttp\Stream\Stream::factory`, and |
|
| 565 |
- `GuzzleHttp\Stream\Utils::create` no longer accept a size in the second |
|
| 566 |
- argument. They now accept an associative array of options, including the |
|
| 567 |
- "size" key and "metadata" key which can be used to provide custom metadata. |
|
| 568 |
- |
|
| 569 |
-## 4.2.2 - 2014-09-08 |
|
| 570 |
- |
|
| 571 |
-* Fixed a memory leak in the CurlAdapter when reusing cURL handles. |
|
| 572 |
-* No longer using `request_fulluri` in stream adapter proxies. |
|
| 573 |
-* Relative redirects are now based on the last response, not the first response. |
|
| 574 |
- |
|
| 575 |
-## 4.2.1 - 2014-08-19 |
|
| 576 |
- |
|
| 577 |
-* Ensuring that the StreamAdapter does not always add a Content-Type header |
|
| 578 |
-* Adding automated github releases with a phar and zip |
|
| 579 |
- |
|
| 580 |
-## 4.2.0 - 2014-08-17 |
|
| 581 |
- |
|
| 582 |
-* Now merging in default options using a case-insensitive comparison. |
|
| 583 |
- Closes https://github.com/guzzle/guzzle/issues/767 |
|
| 584 |
-* Added the ability to automatically decode `Content-Encoding` response bodies |
|
| 585 |
- using the `decode_content` request option. This is set to `true` by default |
|
| 586 |
- to decode the response body if it comes over the wire with a |
|
| 587 |
- `Content-Encoding`. Set this value to `false` to disable decoding the |
|
| 588 |
- response content, and pass a string to provide a request `Accept-Encoding` |
|
| 589 |
- header and turn on automatic response decoding. This feature now allows you |
|
| 590 |
- to pass an `Accept-Encoding` header in the headers of a request but still |
|
| 591 |
- disable automatic response decoding. |
|
| 592 |
- Closes https://github.com/guzzle/guzzle/issues/764 |
|
| 593 |
-* Added the ability to throw an exception immediately when transferring |
|
| 594 |
- requests in parallel. Closes https://github.com/guzzle/guzzle/issues/760 |
|
| 595 |
-* Updating guzzlehttp/streams dependency to ~2.1 |
|
| 596 |
-* No longer utilizing the now deprecated namespaced methods from the stream |
|
| 597 |
- package. |
|
| 598 |
- |
|
| 599 |
-## 4.1.8 - 2014-08-14 |
|
| 600 |
- |
|
| 601 |
-* Fixed an issue in the CurlFactory that caused setting the `stream=false` |
|
| 602 |
- request option to throw an exception. |
|
| 603 |
- See: https://github.com/guzzle/guzzle/issues/769 |
|
| 604 |
-* TransactionIterator now calls rewind on the inner iterator. |
|
| 605 |
- See: https://github.com/guzzle/guzzle/pull/765 |
|
| 606 |
-* You can now set the `Content-Type` header to `multipart/form-data` |
|
| 607 |
- when creating POST requests to force multipart bodies. |
|
| 608 |
- See https://github.com/guzzle/guzzle/issues/768 |
|
| 609 |
- |
|
| 610 |
-## 4.1.7 - 2014-08-07 |
|
| 611 |
- |
|
| 612 |
-* Fixed an error in the HistoryPlugin that caused the same request and response |
|
| 613 |
- to be logged multiple times when an HTTP protocol error occurs. |
|
| 614 |
-* Ensuring that cURL does not add a default Content-Type when no Content-Type |
|
| 615 |
- has been supplied by the user. This prevents the adapter layer from modifying |
|
| 616 |
- the request that is sent over the wire after any listeners may have already |
|
| 617 |
- put the request in a desired state (e.g., signed the request). |
|
| 618 |
-* Throwing an exception when you attempt to send requests that have the |
|
| 619 |
- "stream" set to true in parallel using the MultiAdapter. |
|
| 620 |
-* Only calling curl_multi_select when there are active cURL handles. This was |
|
| 621 |
- previously changed and caused performance problems on some systems due to PHP |
|
| 622 |
- always selecting until the maximum select timeout. |
|
| 623 |
-* Fixed a bug where multipart/form-data POST fields were not correctly |
|
| 624 |
- aggregated (e.g., values with "&"). |
|
| 625 |
- |
|
| 626 |
-## 4.1.6 - 2014-08-03 |
|
| 627 |
- |
|
| 628 |
-* Added helper methods to make it easier to represent messages as strings, |
|
| 629 |
- including getting the start line and getting headers as a string. |
|
| 630 |
- |
|
| 631 |
-## 4.1.5 - 2014-08-02 |
|
| 632 |
- |
|
| 633 |
-* Automatically retrying cURL "Connection died, retrying a fresh connect" |
|
| 634 |
- errors when possible. |
|
| 635 |
-* cURL implementation cleanup |
|
| 636 |
-* Allowing multiple event subscriber listeners to be registered per event by |
|
| 637 |
- passing an array of arrays of listener configuration. |
|
| 638 |
- |
|
| 639 |
-## 4.1.4 - 2014-07-22 |
|
| 640 |
- |
|
| 641 |
-* Fixed a bug that caused multi-part POST requests with more than one field to |
|
| 642 |
- serialize incorrectly. |
|
| 643 |
-* Paths can now be set to "0" |
|
| 644 |
-* `ResponseInterface::xml` now accepts a `libxml_options` option and added a |
|
| 645 |
- missing default argument that was required when parsing XML response bodies. |
|
| 646 |
-* A `save_to` stream is now created lazily, which means that files are not |
|
| 647 |
- created on disk unless a request succeeds. |
|
| 648 |
- |
|
| 649 |
-## 4.1.3 - 2014-07-15 |
|
| 650 |
- |
|
| 651 |
-* Various fixes to multipart/form-data POST uploads |
|
| 652 |
-* Wrapping function.php in an if-statement to ensure Guzzle can be used |
|
| 653 |
- globally and in a Composer install |
|
| 654 |
-* Fixed an issue with generating and merging in events to an event array |
|
| 655 |
-* POST headers are only applied before sending a request to allow you to change |
|
| 656 |
- the query aggregator used before uploading |
|
| 657 |
-* Added much more robust query string parsing |
|
| 658 |
-* Fixed various parsing and normalization issues with URLs |
|
| 659 |
-* Fixing an issue where multi-valued headers were not being utilized correctly |
|
| 660 |
- in the StreamAdapter |
|
| 661 |
- |
|
| 662 |
-## 4.1.2 - 2014-06-18 |
|
| 663 |
- |
|
| 664 |
-* Added support for sending payloads with GET requests |
|
| 665 |
- |
|
| 666 |
-## 4.1.1 - 2014-06-08 |
|
| 667 |
- |
|
| 668 |
-* Fixed an issue related to using custom message factory options in subclasses |
|
| 669 |
-* Fixed an issue with nested form fields in a multi-part POST |
|
| 670 |
-* Fixed an issue with using the `json` request option for POST requests |
|
| 671 |
-* Added `ToArrayInterface` to `GuzzleHttp\Cookie\CookieJar` |
|
| 672 |
- |
|
| 673 |
-## 4.1.0 - 2014-05-27 |
|
| 674 |
- |
|
| 675 |
-* Added a `json` request option to easily serialize JSON payloads. |
|
| 676 |
-* Added a `GuzzleHttp\json_decode()` wrapper to safely parse JSON. |
|
| 677 |
-* Added `setPort()` and `getPort()` to `GuzzleHttp\Message\RequestInterface`. |
|
| 678 |
-* Added the ability to provide an emitter to a client in the client constructor. |
|
| 679 |
-* Added the ability to persist a cookie session using $_SESSION. |
|
| 680 |
-* Added a trait that can be used to add event listeners to an iterator. |
|
| 681 |
-* Removed request method constants from RequestInterface. |
|
| 682 |
-* Fixed warning when invalid request start-lines are received. |
|
| 683 |
-* Updated MessageFactory to work with custom request option methods. |
|
| 684 |
-* Updated cacert bundle to latest build. |
|
| 685 |
- |
|
| 686 |
-4.0.2 (2014-04-16) |
|
| 687 |
- |
|
| 688 |
-* Proxy requests using the StreamAdapter now properly use request_fulluri (#632) |
|
| 689 |
-* Added the ability to set scalars as POST fields (#628) |
|
| 690 |
- |
|
| 691 |
-## 4.0.1 - 2014-04-04 |
|
| 692 |
- |
|
| 693 |
-* The HTTP status code of a response is now set as the exception code of |
|
| 694 |
- RequestException objects. |
|
| 695 |
-* 303 redirects will now correctly switch from POST to GET requests. |
|
| 696 |
-* The default parallel adapter of a client now correctly uses the MultiAdapter. |
|
| 697 |
-* HasDataTrait now initializes the internal data array as an empty array so |
|
| 698 |
- that the toArray() method always returns an array. |
|
| 699 |
- |
|
| 700 |
-## 4.0.0 - 2014-03-29 |
|
| 701 |
- |
|
| 702 |
-* For information on changes and upgrading, see: |
|
| 703 |
- https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 |
|
| 704 |
-* Added `GuzzleHttp\batch()` as a convenience function for sending requests in |
|
| 705 |
- parallel without needing to write asynchronous code. |
|
| 706 |
-* Restructured how events are added to `GuzzleHttp\ClientInterface::sendAll()`. |
|
| 707 |
- You can now pass a callable or an array of associative arrays where each |
|
| 708 |
- associative array contains the "fn", "priority", and "once" keys. |
|
| 709 |
- |
|
| 710 |
-## 4.0.0.rc-2 - 2014-03-25 |
|
| 711 |
- |
|
| 712 |
-* Removed `getConfig()` and `setConfig()` from clients to avoid confusion |
|
| 713 |
- around whether things like base_url, message_factory, etc. should be able to |
|
| 714 |
- be retrieved or modified. |
|
| 715 |
-* Added `getDefaultOption()` and `setDefaultOption()` to ClientInterface |
|
| 716 |
-* functions.php functions were renamed using snake_case to match PHP idioms |
|
| 717 |
-* Added support for `HTTP_PROXY`, `HTTPS_PROXY`, and |
|
| 718 |
- `GUZZLE_CURL_SELECT_TIMEOUT` environment variables |
|
| 719 |
-* Added the ability to specify custom `sendAll()` event priorities |
|
| 720 |
-* Added the ability to specify custom stream context options to the stream |
|
| 721 |
- adapter. |
|
| 722 |
-* Added a functions.php function for `get_path()` and `set_path()` |
|
| 723 |
-* CurlAdapter and MultiAdapter now use a callable to generate curl resources |
|
| 724 |
-* MockAdapter now properly reads a body and emits a `headers` event |
|
| 725 |
-* Updated Url class to check if a scheme and host are set before adding ":" |
|
| 726 |
- and "//". This allows empty Url (e.g., "") to be serialized as "". |
|
| 727 |
-* Parsing invalid XML no longer emits warnings |
|
| 728 |
-* Curl classes now properly throw AdapterExceptions |
|
| 729 |
-* Various performance optimizations |
|
| 730 |
-* Streams are created with the faster `Stream\create()` function |
|
| 731 |
-* Marked deprecation_proxy() as internal |
|
| 732 |
-* Test server is now a collection of static methods on a class |
|
| 733 |
- |
|
| 734 |
-## 4.0.0-rc.1 - 2014-03-15 |
|
| 735 |
- |
|
| 736 |
-* See https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 |
|
| 737 |
- |
|
| 738 |
-## 3.8.1 - 2014-01-28 |
|
| 739 |
- |
|
| 740 |
-* Bug: Always using GET requests when redirecting from a 303 response |
|
| 741 |
-* Bug: CURLOPT_SSL_VERIFYHOST is now correctly set to false when setting `$certificateAuthority` to false in |
|
| 742 |
- `Guzzle\Http\ClientInterface::setSslVerification()` |
|
| 743 |
-* Bug: RedirectPlugin now uses strict RFC 3986 compliance when combining a base URL with a relative URL |
|
| 744 |
-* Bug: The body of a request can now be set to `"0"` |
|
| 745 |
-* Sending PHP stream requests no longer forces `HTTP/1.0` |
|
| 746 |
-* Adding more information to ExceptionCollection exceptions so that users have more context, including a stack trace of |
|
| 747 |
- each sub-exception |
|
| 748 |
-* Updated the `$ref` attribute in service descriptions to merge over any existing parameters of a schema (rather than |
|
| 749 |
- clobbering everything). |
|
| 750 |
-* Merging URLs will now use the query string object from the relative URL (thus allowing custom query aggregators) |
|
| 751 |
-* Query strings are now parsed in a way that they do no convert empty keys with no value to have a dangling `=`. |
|
| 752 |
- For example `foo&bar=baz` is now correctly parsed and recognized as `foo&bar=baz` rather than `foo=&bar=baz`. |
|
| 753 |
-* Now properly escaping the regular expression delimiter when matching Cookie domains. |
|
| 754 |
-* Network access is now disabled when loading XML documents |
|
| 755 |
- |
|
| 756 |
-## 3.8.0 - 2013-12-05 |
|
| 757 |
- |
|
| 758 |
-* Added the ability to define a POST name for a file |
|
| 759 |
-* JSON response parsing now properly walks additionalProperties |
|
| 760 |
-* cURL error code 18 is now retried automatically in the BackoffPlugin |
|
| 761 |
-* Fixed a cURL error when URLs contain fragments |
|
| 762 |
-* Fixed an issue in the BackoffPlugin retry event where it was trying to access all exceptions as if they were |
|
| 763 |
- CurlExceptions |
|
| 764 |
-* CURLOPT_PROGRESS function fix for PHP 5.5 (69fcc1e) |
|
| 765 |
-* Added the ability for Guzzle to work with older versions of cURL that do not support `CURLOPT_TIMEOUT_MS` |
|
| 766 |
-* Fixed a bug that was encountered when parsing empty header parameters |
|
| 767 |
-* UriTemplate now has a `setRegex()` method to match the docs |
|
| 768 |
-* The `debug` request parameter now checks if it is truthy rather than if it exists |
|
| 769 |
-* Setting the `debug` request parameter to true shows verbose cURL output instead of using the LogPlugin |
|
| 770 |
-* Added the ability to combine URLs using strict RFC 3986 compliance |
|
| 771 |
-* Command objects can now return the validation errors encountered by the command |
|
| 772 |
-* Various fixes to cache revalidation (#437 and 29797e5) |
|
| 773 |
-* Various fixes to the AsyncPlugin |
|
| 774 |
-* Cleaned up build scripts |
|
| 775 |
- |
|
| 776 |
-## 3.7.4 - 2013-10-02 |
|
| 777 |
- |
|
| 778 |
-* Bug fix: 0 is now an allowed value in a description parameter that has a default value (#430) |
|
| 779 |
-* Bug fix: SchemaFormatter now returns an integer when formatting to a Unix timestamp |
|
| 780 |
- (see https://github.com/aws/aws-sdk-php/issues/147) |
|
| 781 |
-* Bug fix: Cleaned up and fixed URL dot segment removal to properly resolve internal dots |
|
| 782 |
-* Minimum PHP version is now properly specified as 5.3.3 (up from 5.3.2) (#420) |
|
| 783 |
-* Updated the bundled cacert.pem (#419) |
|
| 784 |
-* OauthPlugin now supports adding authentication to headers or query string (#425) |
|
| 785 |
- |
|
| 786 |
-## 3.7.3 - 2013-09-08 |
|
| 787 |
- |
|
| 788 |
-* Added the ability to get the exception associated with a request/command when using `MultiTransferException` and |
|
| 789 |
- `CommandTransferException`. |
|
| 790 |
-* Setting `additionalParameters` of a response to false is now honored when parsing responses with a service description |
|
| 791 |
-* Schemas are only injected into response models when explicitly configured. |
|
| 792 |
-* No longer guessing Content-Type based on the path of a request. Content-Type is now only guessed based on the path of |
|
| 793 |
- an EntityBody. |
|
| 794 |
-* Bug fix: ChunkedIterator can now properly chunk a \Traversable as well as an \Iterator. |
|
| 795 |
-* Bug fix: FilterIterator now relies on `\Iterator` instead of `\Traversable`. |
|
| 796 |
-* Bug fix: Gracefully handling malformed responses in RequestMediator::writeResponseBody() |
|
| 797 |
-* Bug fix: Replaced call to canCache with canCacheRequest in the CallbackCanCacheStrategy of the CachePlugin |
|
| 798 |
-* Bug fix: Visiting XML attributes first before visiting XML children when serializing requests |
|
| 799 |
-* Bug fix: Properly parsing headers that contain commas contained in quotes |
|
| 800 |
-* Bug fix: mimetype guessing based on a filename is now case-insensitive |
|
| 801 |
- |
|
| 802 |
-## 3.7.2 - 2013-08-02 |
|
| 803 |
- |
|
| 804 |
-* Bug fix: Properly URL encoding paths when using the PHP-only version of the UriTemplate expander |
|
| 805 |
- See https://github.com/guzzle/guzzle/issues/371 |
|
| 806 |
-* Bug fix: Cookie domains are now matched correctly according to RFC 6265 |
|
| 807 |
- See https://github.com/guzzle/guzzle/issues/377 |
|
| 808 |
-* Bug fix: GET parameters are now used when calculating an OAuth signature |
|
| 809 |
-* Bug fix: Fixed an issue with cache revalidation where the If-None-Match header was being double quoted |
|
| 810 |
-* `Guzzle\Common\AbstractHasDispatcher::dispatch()` now returns the event that was dispatched |
|
| 811 |
-* `Guzzle\Http\QueryString::factory()` now guesses the most appropriate query aggregator to used based on the input. |
|
| 812 |
- See https://github.com/guzzle/guzzle/issues/379 |
|
| 813 |
-* Added a way to add custom domain objects to service description parsing using the `operation.parse_class` event. See |
|
| 814 |
- https://github.com/guzzle/guzzle/pull/380 |
|
| 815 |
-* cURL multi cleanup and optimizations |
|
| 816 |
- |
|
| 817 |
-## 3.7.1 - 2013-07-05 |
|
| 818 |
- |
|
| 819 |
-* Bug fix: Setting default options on a client now works |
|
| 820 |
-* Bug fix: Setting options on HEAD requests now works. See #352 |
|
| 821 |
-* Bug fix: Moving stream factory before send event to before building the stream. See #353 |
|
| 822 |
-* Bug fix: Cookies no longer match on IP addresses per RFC 6265 |
|
| 823 |
-* Bug fix: Correctly parsing header parameters that are in `<>` and quotes |
|
| 824 |
-* Added `cert` and `ssl_key` as request options |
|
| 825 |
-* `Host` header can now diverge from the host part of a URL if the header is set manually |
|
| 826 |
-* `Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor` was rewritten to change from using SimpleXML to XMLWriter |
|
| 827 |
-* OAuth parameters are only added via the plugin if they aren't already set |
|
| 828 |
-* Exceptions are now thrown when a URL cannot be parsed |
|
| 829 |
-* Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails |
|
| 830 |
-* Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin |
|
| 831 |
- |
|
| 832 |
-## 3.7.0 - 2013-06-10 |
|
| 833 |
- |
|
| 834 |
-* See UPGRADING.md for more information on how to upgrade. |
|
| 835 |
-* Requests now support the ability to specify an array of $options when creating a request to more easily modify a |
|
| 836 |
- request. You can pass a 'request.options' configuration setting to a client to apply default request options to |
|
| 837 |
- every request created by a client (e.g. default query string variables, headers, curl options, etc.). |
|
| 838 |
-* Added a static facade class that allows you to use Guzzle with static methods and mount the class to `\Guzzle`. |
|
| 839 |
- See `Guzzle\Http\StaticClient::mount`. |
|
| 840 |
-* Added `command.request_options` to `Guzzle\Service\Command\AbstractCommand` to pass request options to requests |
|
| 841 |
- created by a command (e.g. custom headers, query string variables, timeout settings, etc.). |
|
| 842 |
-* Stream size in `Guzzle\Stream\PhpStreamRequestFactory` will now be set if Content-Length is returned in the |
|
| 843 |
- headers of a response |
|
| 844 |
-* Added `Guzzle\Common\Collection::setPath($path, $value)` to set a value into an array using a nested key |
|
| 845 |
- (e.g. `$collection->setPath('foo/baz/bar', 'test'); echo $collection['foo']['bar']['bar'];`)
|
|
| 846 |
-* ServiceBuilders now support storing and retrieving arbitrary data |
|
| 847 |
-* CachePlugin can now purge all resources for a given URI |
|
| 848 |
-* CachePlugin can automatically purge matching cached items when a non-idempotent request is sent to a resource |
|
| 849 |
-* CachePlugin now uses the Vary header to determine if a resource is a cache hit |
|
| 850 |
-* `Guzzle\Http\Message\Response` now implements `\Serializable` |
|
| 851 |
-* Added `Guzzle\Cache\CacheAdapterFactory::fromCache()` to more easily create cache adapters |
|
| 852 |
-* `Guzzle\Service\ClientInterface::execute()` now accepts an array, single command, or Traversable |
|
| 853 |
-* Fixed a bug in `Guzzle\Http\Message\Header\Link::addLink()` |
|
| 854 |
-* Better handling of calculating the size of a stream in `Guzzle\Stream\Stream` using fstat() and caching the size |
|
| 855 |
-* `Guzzle\Common\Exception\ExceptionCollection` now creates a more readable exception message |
|
| 856 |
-* Fixing BC break: Added back the MonologLogAdapter implementation rather than extending from PsrLog so that older |
|
| 857 |
- Symfony users can still use the old version of Monolog. |
|
| 858 |
-* Fixing BC break: Added the implementation back in for `Guzzle\Http\Message\AbstractMessage::getTokenizedHeader()`. |
|
| 859 |
- Now triggering an E_USER_DEPRECATED warning when used. Use `$message->getHeader()->parseParams()`. |
|
| 860 |
-* Several performance improvements to `Guzzle\Common\Collection` |
|
| 861 |
-* Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`: |
|
| 862 |
- createRequest, head, delete, put, patch, post, options, prepareRequest |
|
| 863 |
-* Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()` |
|
| 864 |
-* Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface` |
|
| 865 |
-* Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to |
|
| 866 |
- `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a |
|
| 867 |
- resource, string, or EntityBody into the $options parameter to specify the download location of the response. |
|
| 868 |
-* Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a |
|
| 869 |
- default `array()` |
|
| 870 |
-* Added `Guzzle\Stream\StreamInterface::isRepeatable` |
|
| 871 |
-* Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use |
|
| 872 |
- $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or
|
|
| 873 |
- $client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))`.
|
|
| 874 |
-* Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use $client->getConfig()->getPath('request.options/headers')`.
|
|
| 875 |
-* Removed `Guzzle\Http\ClientInterface::expandTemplate()` |
|
| 876 |
-* Removed `Guzzle\Http\ClientInterface::setRequestFactory()` |
|
| 877 |
-* Removed `Guzzle\Http\ClientInterface::getCurlMulti()` |
|
| 878 |
-* Removed `Guzzle\Http\Message\RequestInterface::canCache` |
|
| 879 |
-* Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect` |
|
| 880 |
-* Removed `Guzzle\Http\Message\RequestInterface::isRedirect` |
|
| 881 |
-* Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods. |
|
| 882 |
-* You can now enable E_USER_DEPRECATED warnings to see if you are using a deprecated method by setting |
|
| 883 |
- `Guzzle\Common\Version::$emitWarnings` to true. |
|
| 884 |
-* Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use |
|
| 885 |
- `$request->getResponseBody()->isRepeatable()` instead. |
|
| 886 |
-* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use |
|
| 887 |
- `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. |
|
| 888 |
-* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use |
|
| 889 |
- `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. |
|
| 890 |
-* Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead. |
|
| 891 |
-* Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead. |
|
| 892 |
-* Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated |
|
| 893 |
-* Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand. |
|
| 894 |
- These will work through Guzzle 4.0 |
|
| 895 |
-* Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use [request.options][params]. |
|
| 896 |
-* Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client. |
|
| 897 |
-* Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use $client->getConfig()->getPath('request.options/headers')`.
|
|
| 898 |
-* Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`.
|
|
| 899 |
-* Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8. |
|
| 900 |
-* Marked `Guzzle\Common\Collection::inject()` as deprecated. |
|
| 901 |
-* Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');`
|
|
| 902 |
-* CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a |
|
| 903 |
- CacheStorageInterface. These two objects and interface will be removed in a future version. |
|
| 904 |
-* Always setting X-cache headers on cached responses |
|
| 905 |
-* Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin |
|
| 906 |
-* `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface |
|
| 907 |
- $request, Response $response);` |
|
| 908 |
-* `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);` |
|
| 909 |
-* `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);` |
|
| 910 |
-* Added `CacheStorageInterface::purge($url)` |
|
| 911 |
-* `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin |
|
| 912 |
- $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache, |
|
| 913 |
- CanCacheStrategyInterface $canCache = null)` |
|
| 914 |
-* Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)` |
|
| 915 |
- |
|
| 916 |
-## 3.6.0 - 2013-05-29 |
|
| 917 |
- |
|
| 918 |
-* ServiceDescription now implements ToArrayInterface |
|
| 919 |
-* Added command.hidden_params to blacklist certain headers from being treated as additionalParameters |
|
| 920 |
-* Guzzle can now correctly parse incomplete URLs |
|
| 921 |
-* Mixed casing of headers are now forced to be a single consistent casing across all values for that header. |
|
| 922 |
-* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution |
|
| 923 |
-* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader(). |
|
| 924 |
-* Specific header implementations can be created for complex headers. When a message creates a header, it uses a |
|
| 925 |
- HeaderFactory which can map specific headers to specific header classes. There is now a Link header and |
|
| 926 |
- CacheControl header implementation. |
|
| 927 |
-* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate |
|
| 928 |
-* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti() |
|
| 929 |
-* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in |
|
| 930 |
- Guzzle\Http\Curl\RequestMediator |
|
| 931 |
-* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string. |
|
| 932 |
-* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface |
|
| 933 |
-* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders() |
|
| 934 |
-* Removed Guzzle\Parser\ParserRegister::get(). Use getParser() |
|
| 935 |
-* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser(). |
|
| 936 |
-* All response header helper functions return a string rather than mixing Header objects and strings inconsistently |
|
| 937 |
-* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle |
|
| 938 |
- directly via interfaces |
|
| 939 |
-* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist |
|
| 940 |
- but are a no-op until removed. |
|
| 941 |
-* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a |
|
| 942 |
- `Guzzle\Service\Command\ArrayCommandInterface`. |
|
| 943 |
-* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response |
|
| 944 |
- on a request while the request is still being transferred |
|
| 945 |
-* The ability to case-insensitively search for header values |
|
| 946 |
-* Guzzle\Http\Message\Header::hasExactHeader |
|
| 947 |
-* Guzzle\Http\Message\Header::raw. Use getAll() |
|
| 948 |
-* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object |
|
| 949 |
- instead. |
|
| 950 |
-* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess |
|
| 951 |
-* Added the ability to cast Model objects to a string to view debug information. |
|
| 952 |
- |
|
| 953 |
-## 3.5.0 - 2013-05-13 |
|
| 954 |
- |
|
| 955 |
-* Bug: Fixed a regression so that request responses are parsed only once per oncomplete event rather than multiple times |
|
| 956 |
-* Bug: Better cleanup of one-time events across the board (when an event is meant to fire once, it will now remove |
|
| 957 |
- itself from the EventDispatcher) |
|
| 958 |
-* Bug: `Guzzle\Log\MessageFormatter` now properly writes "total_time" and "connect_time" values |
|
| 959 |
-* Bug: Cloning an EntityEnclosingRequest now clones the EntityBody too |
|
| 960 |
-* Bug: Fixed an undefined index error when parsing nested JSON responses with a sentAs parameter that reference a |
|
| 961 |
- non-existent key |
|
| 962 |
-* Bug: All __call() method arguments are now required (helps with mocking frameworks) |
|
| 963 |
-* Deprecating Response::getRequest() and now using a shallow clone of a request object to remove a circular reference |
|
| 964 |
- to help with refcount based garbage collection of resources created by sending a request |
|
| 965 |
-* Deprecating ZF1 cache and log adapters. These will be removed in the next major version. |
|
| 966 |
-* Deprecating `Response::getPreviousResponse()` (method signature still exists, but it's deprecated). Use the |
|
| 967 |
- HistoryPlugin for a history. |
|
| 968 |
-* Added a `responseBody` alias for the `response_body` location |
|
| 969 |
-* Refactored internals to no longer rely on Response::getRequest() |
|
| 970 |
-* HistoryPlugin can now be cast to a string |
|
| 971 |
-* HistoryPlugin now logs transactions rather than requests and responses to more accurately keep track of the requests |
|
| 972 |
- and responses that are sent over the wire |
|
| 973 |
-* Added `getEffectiveUrl()` and `getRedirectCount()` to Response objects |
|
| 974 |
- |
|
| 975 |
-## 3.4.3 - 2013-04-30 |
|
| 976 |
- |
|
| 977 |
-* Bug fix: Fixing bug introduced in 3.4.2 where redirect responses are duplicated on the final redirected response |
|
| 978 |
-* Added a check to re-extract the temp cacert bundle from the phar before sending each request |
|
| 979 |
- |
|
| 980 |
-## 3.4.2 - 2013-04-29 |
|
| 981 |
- |
|
| 982 |
-* Bug fix: Stream objects now work correctly with "a" and "a+" modes |
|
| 983 |
-* Bug fix: Removing `Transfer-Encoding: chunked` header when a Content-Length is present |
|
| 984 |
-* Bug fix: AsyncPlugin no longer forces HEAD requests |
|
| 985 |
-* Bug fix: DateTime timezones are now properly handled when using the service description schema formatter |
|
| 986 |
-* Bug fix: CachePlugin now properly handles stale-if-error directives when a request to the origin server fails |
|
| 987 |
-* Setting a response on a request will write to the custom request body from the response body if one is specified |
|
| 988 |
-* LogPlugin now writes to php://output when STDERR is undefined |
|
| 989 |
-* Added the ability to set multiple POST files for the same key in a single call |
|
| 990 |
-* application/x-www-form-urlencoded POSTs now use the utf-8 charset by default |
|
| 991 |
-* Added the ability to queue CurlExceptions to the MockPlugin |
|
| 992 |
-* Cleaned up how manual responses are queued on requests (removed "queued_response" and now using request.before_send) |
|
| 993 |
-* Configuration loading now allows remote files |
|
| 994 |
- |
|
| 995 |
-## 3.4.1 - 2013-04-16 |
|
| 996 |
- |
|
| 997 |
-* Large refactoring to how CurlMulti handles work. There is now a proxy that sits in front of a pool of CurlMulti |
|
| 998 |
- handles. This greatly simplifies the implementation, fixes a couple bugs, and provides a small performance boost. |
|
| 999 |
-* Exceptions are now properly grouped when sending requests in parallel |
|
| 1000 |
-* Redirects are now properly aggregated when a multi transaction fails |
|
| 1001 |
-* Redirects now set the response on the original object even in the event of a failure |
|
| 1002 |
-* Bug fix: Model names are now properly set even when using $refs |
|
| 1003 |
-* Added support for PHP 5.5's CurlFile to prevent warnings with the deprecated @ syntax |
|
| 1004 |
-* Added support for oauth_callback in OAuth signatures |
|
| 1005 |
-* Added support for oauth_verifier in OAuth signatures |
|
| 1006 |
-* Added support to attempt to retrieve a command first literally, then ucfirst, the with inflection |
|
| 1007 |
- |
|
| 1008 |
-## 3.4.0 - 2013-04-11 |
|
| 1009 |
- |
|
| 1010 |
-* Bug fix: URLs are now resolved correctly based on https://tools.ietf.org/html/rfc3986#section-5.2. #289 |
|
| 1011 |
-* Bug fix: Absolute URLs with a path in a service description will now properly override the base URL. #289 |
|
| 1012 |
-* Bug fix: Parsing a query string with a single PHP array value will now result in an array. #263 |
|
| 1013 |
-* Bug fix: Better normalization of the User-Agent header to prevent duplicate headers. #264. |
|
| 1014 |
-* Bug fix: Added `number` type to service descriptions. |
|
| 1015 |
-* Bug fix: empty parameters are removed from an OAuth signature |
|
| 1016 |
-* Bug fix: Revalidating a cache entry prefers the Last-Modified over the Date header |
|
| 1017 |
-* Bug fix: Fixed "array to string" error when validating a union of types in a service description |
|
| 1018 |
-* Bug fix: Removed code that attempted to determine the size of a stream when data is written to the stream |
|
| 1019 |
-* Bug fix: Not including an `oauth_token` if the value is null in the OauthPlugin. |
|
| 1020 |
-* Bug fix: Now correctly aggregating successful requests and failed requests in CurlMulti when a redirect occurs. |
|
| 1021 |
-* The new default CURLOPT_TIMEOUT setting has been increased to 150 seconds so that Guzzle works on poor connections. |
|
| 1022 |
-* Added a feature to EntityEnclosingRequest::setBody() that will automatically set the Content-Type of the request if |
|
| 1023 |
- the Content-Type can be determined based on the entity body or the path of the request. |
|
| 1024 |
-* Added the ability to overwrite configuration settings in a client when grabbing a throwaway client from a builder. |
|
| 1025 |
-* Added support for a PSR-3 LogAdapter. |
|
| 1026 |
-* Added a `command.after_prepare` event |
|
| 1027 |
-* Added `oauth_callback` parameter to the OauthPlugin |
|
| 1028 |
-* Added the ability to create a custom stream class when using a stream factory |
|
| 1029 |
-* Added a CachingEntityBody decorator |
|
| 1030 |
-* Added support for `additionalParameters` in service descriptions to define how custom parameters are serialized. |
|
| 1031 |
-* The bundled SSL certificate is now provided in the phar file and extracted when running Guzzle from a phar. |
|
| 1032 |
-* You can now send any EntityEnclosingRequest with POST fields or POST files and cURL will handle creating bodies |
|
| 1033 |
-* POST requests using a custom entity body are now treated exactly like PUT requests but with a custom cURL method. This |
|
| 1034 |
- means that the redirect behavior of POST requests with custom bodies will not be the same as POST requests that use |
|
| 1035 |
- POST fields or files (the latter is only used when emulating a form POST in the browser). |
|
| 1036 |
-* Lots of cleanup to CurlHandle::factory and RequestFactory::createRequest |
|
| 1037 |
- |
|
| 1038 |
-## 3.3.1 - 2013-03-10 |
|
| 1039 |
- |
|
| 1040 |
-* Added the ability to create PHP streaming responses from HTTP requests |
|
| 1041 |
-* Bug fix: Running any filters when parsing response headers with service descriptions |
|
| 1042 |
-* Bug fix: OauthPlugin fixes to allow for multi-dimensional array signing, and sorting parameters before signing |
|
| 1043 |
-* Bug fix: Removed the adding of default empty arrays and false Booleans to responses in order to be consistent across |
|
| 1044 |
- response location visitors. |
|
| 1045 |
-* Bug fix: Removed the possibility of creating configuration files with circular dependencies |
|
| 1046 |
-* RequestFactory::create() now uses the key of a POST file when setting the POST file name |
|
| 1047 |
-* Added xmlAllowEmpty to serialize an XML body even if no XML specific parameters are set |
|
| 1048 |
- |
|
| 1049 |
-## 3.3.0 - 2013-03-03 |
|
| 1050 |
- |
|
| 1051 |
-* A large number of performance optimizations have been made |
|
| 1052 |
-* Bug fix: Added 'wb' as a valid write mode for streams |
|
| 1053 |
-* Bug fix: `Guzzle\Http\Message\Response::json()` now allows scalar values to be returned |
|
| 1054 |
-* Bug fix: Fixed bug in `Guzzle\Http\Message\Response` where wrapping quotes were stripped from `getEtag()` |
|
| 1055 |
-* BC: Removed `Guzzle\Http\Utils` class |
|
| 1056 |
-* BC: Setting a service description on a client will no longer modify the client's command factories. |
|
| 1057 |
-* BC: Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using |
|
| 1058 |
- the 'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io' |
|
| 1059 |
-* BC: `Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getSteamType()` are no longer converted to |
|
| 1060 |
- lowercase |
|
| 1061 |
-* Operation parameter objects are now lazy loaded internally |
|
| 1062 |
-* Added ErrorResponsePlugin that can throw errors for responses defined in service description operations' errorResponses |
|
| 1063 |
-* Added support for instantiating responseType=class responseClass classes. Classes must implement |
|
| 1064 |
- `Guzzle\Service\Command\ResponseClassInterface` |
|
| 1065 |
-* Added support for additionalProperties for top-level parameters in responseType=model responseClasses. These |
|
| 1066 |
- additional properties also support locations and can be used to parse JSON responses where the outermost part of the |
|
| 1067 |
- JSON is an array |
|
| 1068 |
-* Added support for nested renaming of JSON models (rename sentAs to name) |
|
| 1069 |
-* CachePlugin |
|
| 1070 |
- * Added support for stale-if-error so that the CachePlugin can now serve stale content from the cache on error |
|
| 1071 |
- * Debug headers can now added to cached response in the CachePlugin |
|
| 1072 |
- |
|
| 1073 |
-## 3.2.0 - 2013-02-14 |
|
| 1074 |
- |
|
| 1075 |
-* CurlMulti is no longer reused globally. A new multi object is created per-client. This helps to isolate clients. |
|
| 1076 |
-* URLs with no path no longer contain a "/" by default |
|
| 1077 |
-* Guzzle\Http\QueryString does no longer manages the leading "?". This is now handled in Guzzle\Http\Url. |
|
| 1078 |
-* BadResponseException no longer includes the full request and response message |
|
| 1079 |
-* Adding setData() to Guzzle\Service\Description\ServiceDescriptionInterface |
|
| 1080 |
-* Adding getResponseBody() to Guzzle\Http\Message\RequestInterface |
|
| 1081 |
-* Various updates to classes to use ServiceDescriptionInterface type hints rather than ServiceDescription |
|
| 1082 |
-* Header values can now be normalized into distinct values when multiple headers are combined with a comma separated list |
|
| 1083 |
-* xmlEncoding can now be customized for the XML declaration of a XML service description operation |
|
| 1084 |
-* Guzzle\Http\QueryString now uses Guzzle\Http\QueryAggregator\QueryAggregatorInterface objects to add custom value |
|
| 1085 |
- aggregation and no longer uses callbacks |
|
| 1086 |
-* The URL encoding implementation of Guzzle\Http\QueryString can now be customized |
|
| 1087 |
-* Bug fix: Filters were not always invoked for array service description parameters |
|
| 1088 |
-* Bug fix: Redirects now use a target response body rather than a temporary response body |
|
| 1089 |
-* Bug fix: The default exponential backoff BackoffPlugin was not giving when the request threshold was exceeded |
|
| 1090 |
-* Bug fix: Guzzle now takes the first found value when grabbing Cache-Control directives |
|
| 1091 |
- |
|
| 1092 |
-## 3.1.2 - 2013-01-27 |
|
| 1093 |
- |
|
| 1094 |
-* Refactored how operation responses are parsed. Visitors now include a before() method responsible for parsing the |
|
| 1095 |
- response body. For example, the XmlVisitor now parses the XML response into an array in the before() method. |
|
| 1096 |
-* Fixed an issue where cURL would not automatically decompress responses when the Accept-Encoding header was sent |
|
| 1097 |
-* CURLOPT_SSL_VERIFYHOST is never set to 1 because it is deprecated (see 5e0ff2ef20f839e19d1eeb298f90ba3598784444) |
|
| 1098 |
-* Fixed a bug where redirect responses were not chained correctly using getPreviousResponse() |
|
| 1099 |
-* Setting default headers on a client after setting the user-agent will not erase the user-agent setting |
|
| 1100 |
- |
|
| 1101 |
-## 3.1.1 - 2013-01-20 |
|
| 1102 |
- |
|
| 1103 |
-* Adding wildcard support to Guzzle\Common\Collection::getPath() |
|
| 1104 |
-* Adding alias support to ServiceBuilder configs |
|
| 1105 |
-* Adding Guzzle\Service\Resource\CompositeResourceIteratorFactory and cleaning up factory interface |
|
| 1106 |
- |
|
| 1107 |
-## 3.1.0 - 2013-01-12 |
|
| 1108 |
- |
|
| 1109 |
-* BC: CurlException now extends from RequestException rather than BadResponseException |
|
| 1110 |
-* BC: Renamed Guzzle\Plugin\Cache\CanCacheStrategyInterface::canCache() to canCacheRequest() and added CanCacheResponse() |
|
| 1111 |
-* Added getData to ServiceDescriptionInterface |
|
| 1112 |
-* Added context array to RequestInterface::setState() |
|
| 1113 |
-* Bug: Removing hard dependency on the BackoffPlugin from Guzzle\Http |
|
| 1114 |
-* Bug: Adding required content-type when JSON request visitor adds JSON to a command |
|
| 1115 |
-* Bug: Fixing the serialization of a service description with custom data |
|
| 1116 |
-* Made it easier to deal with exceptions thrown when transferring commands or requests in parallel by providing |
|
| 1117 |
- an array of successful and failed responses |
|
| 1118 |
-* Moved getPath from Guzzle\Service\Resource\Model to Guzzle\Common\Collection |
|
| 1119 |
-* Added Guzzle\Http\IoEmittingEntityBody |
|
| 1120 |
-* Moved command filtration from validators to location visitors |
|
| 1121 |
-* Added `extends` attributes to service description parameters |
|
| 1122 |
-* Added getModels to ServiceDescriptionInterface |
|
| 1123 |
- |
|
| 1124 |
-## 3.0.7 - 2012-12-19 |
|
| 1125 |
- |
|
| 1126 |
-* Fixing phar detection when forcing a cacert to system if null or true |
|
| 1127 |
-* Allowing filename to be passed to `Guzzle\Http\Message\Request::setResponseBody()` |
|
| 1128 |
-* Cleaning up `Guzzle\Common\Collection::inject` method |
|
| 1129 |
-* Adding a response_body location to service descriptions |
|
| 1130 |
- |
|
| 1131 |
-## 3.0.6 - 2012-12-09 |
|
| 1132 |
- |
|
| 1133 |
-* CurlMulti performance improvements |
|
| 1134 |
-* Adding setErrorResponses() to Operation |
|
| 1135 |
-* composer.json tweaks |
|
| 1136 |
- |
|
| 1137 |
-## 3.0.5 - 2012-11-18 |
|
| 1138 |
- |
|
| 1139 |
-* Bug: Fixing an infinite recursion bug caused from revalidating with the CachePlugin |
|
| 1140 |
-* Bug: Response body can now be a string containing "0" |
|
| 1141 |
-* Bug: Using Guzzle inside of a phar uses system by default but now allows for a custom cacert |
|
| 1142 |
-* Bug: QueryString::fromString now properly parses query string parameters that contain equal signs |
|
| 1143 |
-* Added support for XML attributes in service description responses |
|
| 1144 |
-* DefaultRequestSerializer now supports array URI parameter values for URI template expansion |
|
| 1145 |
-* Added better mimetype guessing to requests and post files |
|
| 1146 |
- |
|
| 1147 |
-## 3.0.4 - 2012-11-11 |
|
| 1148 |
- |
|
| 1149 |
-* Bug: Fixed a bug when adding multiple cookies to a request to use the correct glue value |
|
| 1150 |
-* Bug: Cookies can now be added that have a name, domain, or value set to "0" |
|
| 1151 |
-* Bug: Using the system cacert bundle when using the Phar |
|
| 1152 |
-* Added json and xml methods to Response to make it easier to parse JSON and XML response data into data structures |
|
| 1153 |
-* Enhanced cookie jar de-duplication |
|
| 1154 |
-* Added the ability to enable strict cookie jars that throw exceptions when invalid cookies are added |
|
| 1155 |
-* Added setStream to StreamInterface to actually make it possible to implement custom rewind behavior for entity bodies |
|
| 1156 |
-* Added the ability to create any sort of hash for a stream rather than just an MD5 hash |
|
| 1157 |
- |
|
| 1158 |
-## 3.0.3 - 2012-11-04 |
|
| 1159 |
- |
|
| 1160 |
-* Implementing redirects in PHP rather than cURL |
|
| 1161 |
-* Added PECL URI template extension and using as default parser if available |
|
| 1162 |
-* Bug: Fixed Content-Length parsing of Response factory |
|
| 1163 |
-* Adding rewind() method to entity bodies and streams. Allows for custom rewinding of non-repeatable streams. |
|
| 1164 |
-* Adding ToArrayInterface throughout library |
|
| 1165 |
-* Fixing OauthPlugin to create unique nonce values per request |
|
| 1166 |
- |
|
| 1167 |
-## 3.0.2 - 2012-10-25 |
|
| 1168 |
- |
|
| 1169 |
-* Magic methods are enabled by default on clients |
|
| 1170 |
-* Magic methods return the result of a command |
|
| 1171 |
-* Service clients no longer require a base_url option in the factory |
|
| 1172 |
-* Bug: Fixed an issue with URI templates where null template variables were being expanded |
|
| 1173 |
- |
|
| 1174 |
-## 3.0.1 - 2012-10-22 |
|
| 1175 |
- |
|
| 1176 |
-* Models can now be used like regular collection objects by calling filter, map, etc. |
|
| 1177 |
-* Models no longer require a Parameter structure or initial data in the constructor |
|
| 1178 |
-* Added a custom AppendIterator to get around a PHP bug with the `\AppendIterator` |
|
| 1179 |
- |
|
| 1180 |
-## 3.0.0 - 2012-10-15 |
|
| 1181 |
- |
|
| 1182 |
-* Rewrote service description format to be based on Swagger |
|
| 1183 |
- * Now based on JSON schema |
|
| 1184 |
- * Added nested input structures and nested response models |
|
| 1185 |
- * Support for JSON and XML input and output models |
|
| 1186 |
- * Renamed `commands` to `operations` |
|
| 1187 |
- * Removed dot class notation |
|
| 1188 |
- * Removed custom types |
|
| 1189 |
-* Broke the project into smaller top-level namespaces to be more component friendly |
|
| 1190 |
-* Removed support for XML configs and descriptions. Use arrays or JSON files. |
|
| 1191 |
-* Removed the Validation component and Inspector |
|
| 1192 |
-* Moved all cookie code to Guzzle\Plugin\Cookie |
|
| 1193 |
-* Magic methods on a Guzzle\Service\Client now return the command un-executed. |
|
| 1194 |
-* Calling getResult() or getResponse() on a command will lazily execute the command if needed. |
|
| 1195 |
-* Now shipping with cURL's CA certs and using it by default |
|
| 1196 |
-* Added previousResponse() method to response objects |
|
| 1197 |
-* No longer sending Accept and Accept-Encoding headers on every request |
|
| 1198 |
-* Only sending an Expect header by default when a payload is greater than 1MB |
|
| 1199 |
-* Added/moved client options: |
|
| 1200 |
- * curl.blacklist to curl.option.blacklist |
|
| 1201 |
- * Added ssl.certificate_authority |
|
| 1202 |
-* Added a Guzzle\Iterator component |
|
| 1203 |
-* Moved plugins from Guzzle\Http\Plugin to Guzzle\Plugin |
|
| 1204 |
-* Added a more robust backoff retry strategy (replaced the ExponentialBackoffPlugin) |
|
| 1205 |
-* Added a more robust caching plugin |
|
| 1206 |
-* Added setBody to response objects |
|
| 1207 |
-* Updating LogPlugin to use a more flexible MessageFormatter |
|
| 1208 |
-* Added a completely revamped build process |
|
| 1209 |
-* Cleaning up Collection class and removing default values from the get method |
|
| 1210 |
-* Fixed ZF2 cache adapters |
|
| 1211 |
- |
|
| 1212 |
-## 2.8.8 - 2012-10-15 |
|
| 1213 |
- |
|
| 1214 |
-* Bug: Fixed a cookie issue that caused dot prefixed domains to not match where popular browsers did |
|
| 1215 |
- |
|
| 1216 |
-## 2.8.7 - 2012-09-30 |
|
| 1217 |
- |
|
| 1218 |
-* Bug: Fixed config file aliases for JSON includes |
|
| 1219 |
-* Bug: Fixed cookie bug on a request object by using CookieParser to parse cookies on requests |
|
| 1220 |
-* Bug: Removing the path to a file when sending a Content-Disposition header on a POST upload |
|
| 1221 |
-* Bug: Hardening request and response parsing to account for missing parts |
|
| 1222 |
-* Bug: Fixed PEAR packaging |
|
| 1223 |
-* Bug: Fixed Request::getInfo |
|
| 1224 |
-* Bug: Fixed cases where CURLM_CALL_MULTI_PERFORM return codes were causing curl transactions to fail |
|
| 1225 |
-* Adding the ability for the namespace Iterator factory to look in multiple directories |
|
| 1226 |
-* Added more getters/setters/removers from service descriptions |
|
| 1227 |
-* Added the ability to remove POST fields from OAuth signatures |
|
| 1228 |
-* OAuth plugin now supports 2-legged OAuth |
|
| 1229 |
- |
|
| 1230 |
-## 2.8.6 - 2012-09-05 |
|
| 1231 |
- |
|
| 1232 |
-* Added the ability to modify and build service descriptions |
|
| 1233 |
-* Added the use of visitors to apply parameters to locations in service descriptions using the dynamic command |
|
| 1234 |
-* Added a `json` parameter location |
|
| 1235 |
-* Now allowing dot notation for classes in the CacheAdapterFactory |
|
| 1236 |
-* Using the union of two arrays rather than an array_merge when extending service builder services and service params |
|
| 1237 |
-* Ensuring that a service is a string before doing strpos() checks on it when substituting services for references |
|
| 1238 |
- in service builder config files. |
|
| 1239 |
-* Services defined in two different config files that include one another will by default replace the previously |
|
| 1240 |
- defined service, but you can now create services that extend themselves and merge their settings over the previous |
|
| 1241 |
-* The JsonLoader now supports aliasing filenames with different filenames. This allows you to alias something like |
|
| 1242 |
- '_default' with a default JSON configuration file. |
|
| 1243 |
- |
|
| 1244 |
-## 2.8.5 - 2012-08-29 |
|
| 1245 |
- |
|
| 1246 |
-* Bug: Suppressed empty arrays from URI templates |
|
| 1247 |
-* Bug: Added the missing $options argument from ServiceDescription::factory to enable caching |
|
| 1248 |
-* Added support for HTTP responses that do not contain a reason phrase in the start-line |
|
| 1249 |
-* AbstractCommand commands are now invokable |
|
| 1250 |
-* Added a way to get the data used when signing an Oauth request before a request is sent |
|
| 1251 |
- |
|
| 1252 |
-## 2.8.4 - 2012-08-15 |
|
| 1253 |
- |
|
| 1254 |
-* Bug: Custom delay time calculations are no longer ignored in the ExponentialBackoffPlugin |
|
| 1255 |
-* Added the ability to transfer entity bodies as a string rather than streamed. This gets around curl error 65. Set `body_as_string` in a request's curl options to enable. |
|
| 1256 |
-* Added a StreamInterface, EntityBodyInterface, and added ftell() to Guzzle\Common\Stream |
|
| 1257 |
-* Added an AbstractEntityBodyDecorator and a ReadLimitEntityBody decorator to transfer only a subset of a decorated stream |
|
| 1258 |
-* Stream and EntityBody objects will now return the file position to the previous position after a read required operation (e.g. getContentMd5()) |
|
| 1259 |
-* Added additional response status codes |
|
| 1260 |
-* Removed SSL information from the default User-Agent header |
|
| 1261 |
-* DELETE requests can now send an entity body |
|
| 1262 |
-* Added an EventDispatcher to the ExponentialBackoffPlugin and added an ExponentialBackoffLogger to log backoff retries |
|
| 1263 |
-* Added the ability of the MockPlugin to consume mocked request bodies |
|
| 1264 |
-* LogPlugin now exposes request and response objects in the extras array |
|
| 1265 |
- |
|
| 1266 |
-## 2.8.3 - 2012-07-30 |
|
| 1267 |
- |
|
| 1268 |
-* Bug: Fixed a case where empty POST requests were sent as GET requests |
|
| 1269 |
-* Bug: Fixed a bug in ExponentialBackoffPlugin that caused fatal errors when retrying an EntityEnclosingRequest that does not have a body |
|
| 1270 |
-* Bug: Setting the response body of a request to null after completing a request, not when setting the state of a request to new |
|
| 1271 |
-* Added multiple inheritance to service description commands |
|
| 1272 |
-* Added an ApiCommandInterface and added `getParamNames()` and `hasParam()` |
|
| 1273 |
-* Removed the default 2mb size cutoff from the Md5ValidatorPlugin so that it now defaults to validating everything |
|
| 1274 |
-* Changed CurlMulti::perform to pass a smaller timeout to CurlMulti::executeHandles |
|
| 1275 |
- |
|
| 1276 |
-## 2.8.2 - 2012-07-24 |
|
| 1277 |
- |
|
| 1278 |
-* Bug: Query string values set to 0 are no longer dropped from the query string |
|
| 1279 |
-* Bug: A Collection object is no longer created each time a call is made to `Guzzle\Service\Command\AbstractCommand::getRequestHeaders()` |
|
| 1280 |
-* Bug: `+` is now treated as an encoded space when parsing query strings |
|
| 1281 |
-* QueryString and Collection performance improvements |
|
| 1282 |
-* Allowing dot notation for class paths in filters attribute of a service descriptions |
|
| 1283 |
- |
|
| 1284 |
-## 2.8.1 - 2012-07-16 |
|
| 1285 |
- |
|
| 1286 |
-* Loosening Event Dispatcher dependency |
|
| 1287 |
-* POST redirects can now be customized using CURLOPT_POSTREDIR |
|
| 1288 |
- |
|
| 1289 |
-## 2.8.0 - 2012-07-15 |
|
| 1290 |
- |
|
| 1291 |
-* BC: Guzzle\Http\Query |
|
| 1292 |
- * Query strings with empty variables will always show an equal sign unless the variable is set to QueryString::BLANK (e.g. ?acl= vs ?acl) |
|
| 1293 |
- * Changed isEncodingValues() and isEncodingFields() to isUrlEncoding() |
|
| 1294 |
- * Changed setEncodeValues(bool) and setEncodeFields(bool) to useUrlEncoding(bool) |
|
| 1295 |
- * Changed the aggregation functions of QueryString to be static methods |
|
| 1296 |
- * Can now use fromString() with querystrings that have a leading ? |
|
| 1297 |
-* cURL configuration values can be specified in service descriptions using `curl.` prefixed parameters |
|
| 1298 |
-* Content-Length is set to 0 before emitting the request.before_send event when sending an empty request body |
|
| 1299 |
-* Cookies are no longer URL decoded by default |
|
| 1300 |
-* Bug: URI template variables set to null are no longer expanded |
|
| 1301 |
- |
|
| 1302 |
-## 2.7.2 - 2012-07-02 |
|
| 1303 |
- |
|
| 1304 |
-* BC: Moving things to get ready for subtree splits. Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser. |
|
| 1305 |
-* BC: Removing Guzzle\Common\Batch\Batch::count() and replacing it with isEmpty() |
|
| 1306 |
-* CachePlugin now allows for a custom request parameter function to check if a request can be cached |
|
| 1307 |
-* Bug fix: CachePlugin now only caches GET and HEAD requests by default |
|
| 1308 |
-* Bug fix: Using header glue when transferring headers over the wire |
|
| 1309 |
-* Allowing deeply nested arrays for composite variables in URI templates |
|
| 1310 |
-* Batch divisors can now return iterators or arrays |
|
| 1311 |
- |
|
| 1312 |
-## 2.7.1 - 2012-06-26 |
|
| 1313 |
- |
|
| 1314 |
-* Minor patch to update version number in UA string |
|
| 1315 |
-* Updating build process |
|
| 1316 |
- |
|
| 1317 |
-## 2.7.0 - 2012-06-25 |
|
| 1318 |
- |
|
| 1319 |
-* BC: Inflection classes moved to Guzzle\Inflection. No longer static methods. Can now inject custom inflectors into classes. |
|
| 1320 |
-* BC: Removed magic setX methods from commands |
|
| 1321 |
-* BC: Magic methods mapped to service description commands are now inflected in the command factory rather than the client __call() method |
|
| 1322 |
-* Verbose cURL options are no longer enabled by default. Set curl.debug to true on a client to enable. |
|
| 1323 |
-* Bug: Now allowing colons in a response start-line (e.g. HTTP/1.1 503 Service Unavailable: Back-end server is at capacity) |
|
| 1324 |
-* Guzzle\Service\Resource\ResourceIteratorApplyBatched now internally uses the Guzzle\Common\Batch namespace |
|
| 1325 |
-* Added Guzzle\Service\Plugin namespace and a PluginCollectionPlugin |
|
| 1326 |
-* Added the ability to set POST fields and files in a service description |
|
| 1327 |
-* Guzzle\Http\EntityBody::factory() now accepts objects with a __toString() method |
|
| 1328 |
-* Adding a command.before_prepare event to clients |
|
| 1329 |
-* Added BatchClosureTransfer and BatchClosureDivisor |
|
| 1330 |
-* BatchTransferException now includes references to the batch divisor and transfer strategies |
|
| 1331 |
-* Fixed some tests so that they pass more reliably |
|
| 1332 |
-* Added Guzzle\Common\Log\ArrayLogAdapter |
|
| 1333 |
- |
|
| 1334 |
-## 2.6.6 - 2012-06-10 |
|
| 1335 |
- |
|
| 1336 |
-* BC: Removing Guzzle\Http\Plugin\BatchQueuePlugin |
|
| 1337 |
-* BC: Removing Guzzle\Service\Command\CommandSet |
|
| 1338 |
-* Adding generic batching system (replaces the batch queue plugin and command set) |
|
| 1339 |
-* Updating ZF cache and log adapters and now using ZF's composer repository |
|
| 1340 |
-* Bug: Setting the name of each ApiParam when creating through an ApiCommand |
|
| 1341 |
-* Adding result_type, result_doc, deprecated, and doc_url to service descriptions |
|
| 1342 |
-* Bug: Changed the default cookie header casing back to 'Cookie' |
|
| 1343 |
- |
|
| 1344 |
-## 2.6.5 - 2012-06-03 |
|
| 1345 |
- |
|
| 1346 |
-* BC: Renaming Guzzle\Http\Message\RequestInterface::getResourceUri() to getResource() |
|
| 1347 |
-* BC: Removing unused AUTH_BASIC and AUTH_DIGEST constants from |
|
| 1348 |
-* BC: Guzzle\Http\Cookie is now used to manage Set-Cookie data, not Cookie data |
|
| 1349 |
-* BC: Renaming methods in the CookieJarInterface |
|
| 1350 |
-* Moving almost all cookie logic out of the CookiePlugin and into the Cookie or CookieJar implementations |
|
| 1351 |
-* Making the default glue for HTTP headers ';' instead of ',' |
|
| 1352 |
-* Adding a removeValue to Guzzle\Http\Message\Header |
|
| 1353 |
-* Adding getCookies() to request interface. |
|
| 1354 |
-* Making it easier to add event subscribers to HasDispatcherInterface classes. Can now directly call addSubscriber() |
|
| 1355 |
- |
|
| 1356 |
-## 2.6.4 - 2012-05-30 |
|
| 1357 |
- |
|
| 1358 |
-* BC: Cleaning up how POST files are stored in EntityEnclosingRequest objects. Adding PostFile class. |
|
| 1359 |
-* BC: Moving ApiCommand specific functionality from the Inspector and on to the ApiCommand |
|
| 1360 |
-* Bug: Fixing magic method command calls on clients |
|
| 1361 |
-* Bug: Email constraint only validates strings |
|
| 1362 |
-* Bug: Aggregate POST fields when POST files are present in curl handle |
|
| 1363 |
-* Bug: Fixing default User-Agent header |
|
| 1364 |
-* Bug: Only appending or prepending parameters in commands if they are specified |
|
| 1365 |
-* Bug: Not requiring response reason phrases or status codes to match a predefined list of codes |
|
| 1366 |
-* Allowing the use of dot notation for class namespaces when using instance_of constraint |
|
| 1367 |
-* Added any_match validation constraint |
|
| 1368 |
-* Added an AsyncPlugin |
|
| 1369 |
-* Passing request object to the calculateWait method of the ExponentialBackoffPlugin |
|
| 1370 |
-* Allowing the result of a command object to be changed |
|
| 1371 |
-* Parsing location and type sub values when instantiating a service description rather than over and over at runtime |
|
| 1372 |
- |
|
| 1373 |
-## 2.6.3 - 2012-05-23 |
|
| 1374 |
- |
|
| 1375 |
-* [BC] Guzzle\Common\FromConfigInterface no longer requires any config options. |
|
| 1376 |
-* [BC] Refactoring how POST files are stored on an EntityEnclosingRequest. They are now separate from POST fields. |
|
| 1377 |
-* You can now use an array of data when creating PUT request bodies in the request factory. |
|
| 1378 |
-* Removing the requirement that HTTPS requests needed a Cache-Control: public directive to be cacheable. |
|
| 1379 |
-* [Http] Adding support for Content-Type in multipart POST uploads per upload |
|
| 1380 |
-* [Http] Added support for uploading multiple files using the same name (foo[0], foo[1]) |
|
| 1381 |
-* Adding more POST data operations for easier manipulation of POST data. |
|
| 1382 |
-* You can now set empty POST fields. |
|
| 1383 |
-* The body of a request is only shown on EntityEnclosingRequest objects that do not use POST files. |
|
| 1384 |
-* Split the Guzzle\Service\Inspector::validateConfig method into two methods. One to initialize when a command is created, and one to validate. |
|
| 1385 |
-* CS updates |
|
| 1386 |
- |
|
| 1387 |
-## 2.6.2 - 2012-05-19 |
|
| 1388 |
- |
|
| 1389 |
-* [Http] Better handling of nested scope requests in CurlMulti. Requests are now always prepares in the send() method rather than the addRequest() method. |
|
| 1390 |
- |
|
| 1391 |
-## 2.6.1 - 2012-05-19 |
|
| 1392 |
- |
|
| 1393 |
-* [BC] Removing 'path' support in service descriptions. Use 'uri'. |
|
| 1394 |
-* [BC] Guzzle\Service\Inspector::parseDocBlock is now protected. Adding getApiParamsForClass() with cache. |
|
| 1395 |
-* [BC] Removing Guzzle\Common\NullObject. Use https://github.com/mtdowling/NullObject if you need it. |
|
| 1396 |
-* [BC] Removing Guzzle\Common\XmlElement. |
|
| 1397 |
-* All commands, both dynamic and concrete, have ApiCommand objects. |
|
| 1398 |
-* Adding a fix for CurlMulti so that if all of the connections encounter some sort of curl error, then the loop exits. |
|
| 1399 |
-* Adding checks to EntityEnclosingRequest so that empty POST files and fields are ignored. |
|
| 1400 |
-* Making the method signature of Guzzle\Service\Builder\ServiceBuilder::factory more flexible. |
|
| 1401 |
- |
|
| 1402 |
-## 2.6.0 - 2012-05-15 |
|
| 1403 |
- |
|
| 1404 |
-* [BC] Moving Guzzle\Service\Builder to Guzzle\Service\Builder\ServiceBuilder |
|
| 1405 |
-* [BC] Executing a Command returns the result of the command rather than the command |
|
| 1406 |
-* [BC] Moving all HTTP parsing logic to Guzzle\Http\Parsers. Allows for faster C implementations if needed. |
|
| 1407 |
-* [BC] Changing the Guzzle\Http\Message\Response::setProtocol() method to accept a protocol and version in separate args. |
|
| 1408 |
-* [BC] Moving ResourceIterator* to Guzzle\Service\Resource |
|
| 1409 |
-* [BC] Completely refactored ResourceIterators to iterate over a cloned command object |
|
| 1410 |
-* [BC] Moved Guzzle\Http\UriTemplate to Guzzle\Http\Parser\UriTemplate\UriTemplate |
|
| 1411 |
-* [BC] Guzzle\Guzzle is now deprecated |
|
| 1412 |
-* Moving Guzzle\Common\Guzzle::inject to Guzzle\Common\Collection::inject |
|
| 1413 |
-* Adding Guzzle\Version class to give version information about Guzzle |
|
| 1414 |
-* Adding Guzzle\Http\Utils class to provide getDefaultUserAgent() and getHttpDate() |
|
| 1415 |
-* Adding Guzzle\Curl\CurlVersion to manage caching curl_version() data |
|
| 1416 |
-* ServiceDescription and ServiceBuilder are now cacheable using similar configs |
|
| 1417 |
-* Changing the format of XML and JSON service builder configs. Backwards compatible. |
|
| 1418 |
-* Cleaned up Cookie parsing |
|
| 1419 |
-* Trimming the default Guzzle User-Agent header |
|
| 1420 |
-* Adding a setOnComplete() method to Commands that is called when a command completes |
|
| 1421 |
-* Keeping track of requests that were mocked in the MockPlugin |
|
| 1422 |
-* Fixed a caching bug in the CacheAdapterFactory |
|
| 1423 |
-* Inspector objects can be injected into a Command object |
|
| 1424 |
-* Refactoring a lot of code and tests to be case insensitive when dealing with headers |
|
| 1425 |
-* Adding Guzzle\Http\Message\HeaderComparison for easy comparison of HTTP headers using a DSL |
|
| 1426 |
-* Adding the ability to set global option overrides to service builder configs |
|
| 1427 |
-* Adding the ability to include other service builder config files from within XML and JSON files |
|
| 1428 |
-* Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method. |
|
| 1429 |
- |
|
| 1430 |
-## 2.5.0 - 2012-05-08 |
|
| 1431 |
- |
|
| 1432 |
-* Major performance improvements |
|
| 1433 |
-* [BC] Simplifying Guzzle\Common\Collection. Please check to see if you are using features that are now deprecated. |
|
| 1434 |
-* [BC] Using a custom validation system that allows a flyweight implementation for much faster validation. No longer using Symfony2 Validation component. |
|
| 1435 |
-* [BC] No longer supporting "{{ }}" for injecting into command or UriTemplates. Use "{}"
|
|
| 1436 |
-* Added the ability to passed parameters to all requests created by a client |
|
| 1437 |
-* Added callback functionality to the ExponentialBackoffPlugin |
|
| 1438 |
-* Using microtime in ExponentialBackoffPlugin to allow more granular backoff strategies. |
|
| 1439 |
-* Rewinding request stream bodies when retrying requests |
|
| 1440 |
-* Exception is thrown when JSON response body cannot be decoded |
|
| 1441 |
-* Added configurable magic method calls to clients and commands. This is off by default. |
|
| 1442 |
-* Fixed a defect that added a hash to every parsed URL part |
|
| 1443 |
-* Fixed duplicate none generation for OauthPlugin. |
|
| 1444 |
-* Emitting an event each time a client is generated by a ServiceBuilder |
|
| 1445 |
-* Using an ApiParams object instead of a Collection for parameters of an ApiCommand |
|
| 1446 |
-* cache.* request parameters should be renamed to params.cache.* |
|
| 1447 |
-* Added the ability to set arbitrary curl options on requests (disable_wire, progress, etc.). See CurlHandle. |
|
| 1448 |
-* Added the ability to disable type validation of service descriptions |
|
| 1449 |
-* ServiceDescriptions and ServiceBuilders are now Serializable |
| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,1450 @@ |
| 1 |
+# Change Log |
|
| 2 |
+ |
|
| 3 |
+Please refer to [UPGRADING](UPGRADING.md) guide for upgrading to a major version. |
|
| 4 |
+ |
|
| 5 |
+## 7.2.0 - 2020-10-10 |
|
| 6 |
+ |
|
| 7 |
+### Added |
|
| 8 |
+ |
|
| 9 |
+- Support for PHP 8 [#2712](https://github.com/guzzle/guzzle/pull/2712), [#2715](https://github.com/guzzle/guzzle/pull/2715), [#2789](https://github.com/guzzle/guzzle/pull/2789) |
|
| 10 |
+- Support passing a body summarizer to the http errors middleware [#2795](https://github.com/guzzle/guzzle/pull/2795) |
|
| 11 |
+ |
|
| 12 |
+### Fixed |
|
| 13 |
+ |
|
| 14 |
+- Handle exceptions during response creation [#2591](https://github.com/guzzle/guzzle/pull/2591) |
|
| 15 |
+- Fix CURLOPT_ENCODING not to be overwritten [#2595](https://github.com/guzzle/guzzle/pull/2595) |
|
| 16 |
+- Make sure the Request always has a body object [#2804](https://github.com/guzzle/guzzle/pull/2804) |
|
| 17 |
+ |
|
| 18 |
+### Changed |
|
| 19 |
+ |
|
| 20 |
+- The `TooManyRedirectsException` has a response [#2660](https://github.com/guzzle/guzzle/pull/2660) |
|
| 21 |
+- Avoid "functions" from dependencies [#2712](https://github.com/guzzle/guzzle/pull/2712) |
|
| 22 |
+ |
|
| 23 |
+### Deprecated |
|
| 24 |
+ |
|
| 25 |
+- Using environment variable GUZZLE_CURL_SELECT_TIMEOUT [#2786](https://github.com/guzzle/guzzle/pull/2786) |
|
| 26 |
+ |
|
| 27 |
+## 7.1.1 - 2020-09-30 |
|
| 28 |
+ |
|
| 29 |
+### Fixed |
|
| 30 |
+ |
|
| 31 |
+- Incorrect EOF detection for response body streams on Windows. |
|
| 32 |
+ |
|
| 33 |
+### Changed |
|
| 34 |
+ |
|
| 35 |
+- We dont connect curl `sink` on HEAD requests. |
|
| 36 |
+- Removed some PHP 5 workarounds |
|
| 37 |
+ |
|
| 38 |
+## 7.1.0 - 2020-09-22 |
|
| 39 |
+ |
|
| 40 |
+### Added |
|
| 41 |
+ |
|
| 42 |
+- `GuzzleHttp\MessageFormatterInterface` |
|
| 43 |
+ |
|
| 44 |
+### Fixed |
|
| 45 |
+ |
|
| 46 |
+- Fixed issue that caused cookies with no value not to be stored. |
|
| 47 |
+- On redirects, we allow all safe methods like GET, HEAD and OPTIONS. |
|
| 48 |
+- Fixed logging on empty responses. |
|
| 49 |
+- Make sure MessageFormatter::format returns string |
|
| 50 |
+ |
|
| 51 |
+### Deprecated |
|
| 52 |
+ |
|
| 53 |
+- All functions in `GuzzleHttp` has been deprecated. Use static methods on `Utils` instead. |
|
| 54 |
+- `ClientInterface::getConfig()` |
|
| 55 |
+- `Client::getConfig()` |
|
| 56 |
+- `Client::__call()` |
|
| 57 |
+- `Utils::defaultCaBundle()` |
|
| 58 |
+- `CurlFactory::LOW_CURL_VERSION_NUMBER` |
|
| 59 |
+ |
|
| 60 |
+## 7.0.1 - 2020-06-27 |
|
| 61 |
+ |
|
| 62 |
+* Fix multiply defined functions fatal error [#2699](https://github.com/guzzle/guzzle/pull/2699) |
|
| 63 |
+ |
|
| 64 |
+## 7.0.0 - 2020-06-27 |
|
| 65 |
+ |
|
| 66 |
+No changes since 7.0.0-rc1. |
|
| 67 |
+ |
|
| 68 |
+## 7.0.0-rc1 - 2020-06-15 |
|
| 69 |
+ |
|
| 70 |
+### Changed |
|
| 71 |
+ |
|
| 72 |
+* Use error level for logging errors in Middleware [#2629](https://github.com/guzzle/guzzle/pull/2629) |
|
| 73 |
+* Disabled IDN support by default and require ext-intl to use it [#2675](https://github.com/guzzle/guzzle/pull/2675) |
|
| 74 |
+ |
|
| 75 |
+## 7.0.0-beta2 - 2020-05-25 |
|
| 76 |
+ |
|
| 77 |
+### Added |
|
| 78 |
+ |
|
| 79 |
+* Using `Utils` class instead of functions in the `GuzzleHttp` namespace. [#2546](https://github.com/guzzle/guzzle/pull/2546) |
|
| 80 |
+* `ClientInterface::MAJOR_VERSION` [#2583](https://github.com/guzzle/guzzle/pull/2583) |
|
| 81 |
+ |
|
| 82 |
+### Changed |
|
| 83 |
+ |
|
| 84 |
+* Avoid the `getenv` function when unsafe [#2531](https://github.com/guzzle/guzzle/pull/2531) |
|
| 85 |
+* Added real client methods [#2529](https://github.com/guzzle/guzzle/pull/2529) |
|
| 86 |
+* Avoid functions due to global install conflicts [#2546](https://github.com/guzzle/guzzle/pull/2546) |
|
| 87 |
+* Use Symfony intl-idn polyfill [#2550](https://github.com/guzzle/guzzle/pull/2550) |
|
| 88 |
+* Adding methods for HTTP verbs like `Client::get()`, `Client::head()`, `Client::patch()` etc [#2529](https://github.com/guzzle/guzzle/pull/2529) |
|
| 89 |
+* `ConnectException` extends `TransferException` [#2541](https://github.com/guzzle/guzzle/pull/2541) |
|
| 90 |
+* Updated the default User Agent to "GuzzleHttp/7" [#2654](https://github.com/guzzle/guzzle/pull/2654) |
|
| 91 |
+ |
|
| 92 |
+### Fixed |
|
| 93 |
+ |
|
| 94 |
+* Various intl icu issues [#2626](https://github.com/guzzle/guzzle/pull/2626) |
|
| 95 |
+ |
|
| 96 |
+### Removed |
|
| 97 |
+ |
|
| 98 |
+* Pool option `pool_size` [#2528](https://github.com/guzzle/guzzle/pull/2528) |
|
| 99 |
+ |
|
| 100 |
+## 7.0.0-beta1 - 2019-12-30 |
|
| 101 |
+ |
|
| 102 |
+The diff might look very big but 95% of Guzzle users will be able to upgrade without modification. |
|
| 103 |
+Please see [the upgrade document](UPGRADING.md) that describes all BC breaking changes. |
|
| 104 |
+ |
|
| 105 |
+### Added |
|
| 106 |
+ |
|
| 107 |
+* Implement PSR-18 and dropped PHP 5 support [#2421](https://github.com/guzzle/guzzle/pull/2421) [#2474](https://github.com/guzzle/guzzle/pull/2474) |
|
| 108 |
+* PHP 7 types [#2442](https://github.com/guzzle/guzzle/pull/2442) [#2449](https://github.com/guzzle/guzzle/pull/2449) [#2466](https://github.com/guzzle/guzzle/pull/2466) [#2497](https://github.com/guzzle/guzzle/pull/2497) [#2499](https://github.com/guzzle/guzzle/pull/2499) |
|
| 109 |
+* IDN support for redirects [2424](https://github.com/guzzle/guzzle/pull/2424) |
|
| 110 |
+ |
|
| 111 |
+### Changed |
|
| 112 |
+ |
|
| 113 |
+* Dont allow passing null as third argument to `BadResponseException::__construct()` [#2427](https://github.com/guzzle/guzzle/pull/2427) |
|
| 114 |
+* Use SAPI constant instead of method call [#2450](https://github.com/guzzle/guzzle/pull/2450) |
|
| 115 |
+* Use native function invocation [#2444](https://github.com/guzzle/guzzle/pull/2444) |
|
| 116 |
+* Better defaults for PHP installations with old ICU lib [2454](https://github.com/guzzle/guzzle/pull/2454) |
|
| 117 |
+* Added visibility to all constants [#2462](https://github.com/guzzle/guzzle/pull/2462) |
|
| 118 |
+* Dont allow passing `null` as URI to `Client::request()` and `Client::requestAsync()` [#2461](https://github.com/guzzle/guzzle/pull/2461) |
|
| 119 |
+* Widen the exception argument to throwable [#2495](https://github.com/guzzle/guzzle/pull/2495) |
|
| 120 |
+ |
|
| 121 |
+### Fixed |
|
| 122 |
+ |
|
| 123 |
+* Logging when Promise rejected with a string [#2311](https://github.com/guzzle/guzzle/pull/2311) |
|
| 124 |
+ |
|
| 125 |
+### Removed |
|
| 126 |
+ |
|
| 127 |
+* Class `SeekException` [#2162](https://github.com/guzzle/guzzle/pull/2162) |
|
| 128 |
+* `RequestException::getResponseBodySummary()` [#2425](https://github.com/guzzle/guzzle/pull/2425) |
|
| 129 |
+* `CookieJar::getCookieValue()` [#2433](https://github.com/guzzle/guzzle/pull/2433) |
|
| 130 |
+* `uri_template()` and `UriTemplate` [#2440](https://github.com/guzzle/guzzle/pull/2440) |
|
| 131 |
+* Request options `save_to` and `exceptions` [#2464](https://github.com/guzzle/guzzle/pull/2464) |
|
| 132 |
+ |
|
| 133 |
+## 6.5.2 - 2019-12-23 |
|
| 134 |
+ |
|
| 135 |
+* idn_to_ascii() fix for old PHP versions [#2489](https://github.com/guzzle/guzzle/pull/2489) |
|
| 136 |
+ |
|
| 137 |
+## 6.5.1 - 2019-12-21 |
|
| 138 |
+ |
|
| 139 |
+* Better defaults for PHP installations with old ICU lib [#2454](https://github.com/guzzle/guzzle/pull/2454) |
|
| 140 |
+* IDN support for redirects [#2424](https://github.com/guzzle/guzzle/pull/2424) |
|
| 141 |
+ |
|
| 142 |
+## 6.5.0 - 2019-12-07 |
|
| 143 |
+ |
|
| 144 |
+* Improvement: Added support for reset internal queue in MockHandler. [#2143](https://github.com/guzzle/guzzle/pull/2143) |
|
| 145 |
+* Improvement: Added support to pass arbitrary options to `curl_multi_init`. [#2287](https://github.com/guzzle/guzzle/pull/2287) |
|
| 146 |
+* Fix: Gracefully handle passing `null` to the `header` option. [#2132](https://github.com/guzzle/guzzle/pull/2132) |
|
| 147 |
+* Fix: `RetryMiddleware` did not do exponential delay between retires due unit mismatch. [#2132](https://github.com/guzzle/guzzle/pull/2132) |
|
| 148 |
+* Fix: Prevent undefined offset when using array for ssl_key options. [#2348](https://github.com/guzzle/guzzle/pull/2348) |
|
| 149 |
+* Deprecated `ClientInterface::VERSION` |
|
| 150 |
+ |
|
| 151 |
+## 6.4.1 - 2019-10-23 |
|
| 152 |
+ |
|
| 153 |
+* No `guzzle.phar` was created in 6.4.0 due expired API token. This release will fix that |
|
| 154 |
+* Added `parent::__construct()` to `FileCookieJar` and `SessionCookieJar` |
|
| 155 |
+ |
|
| 156 |
+## 6.4.0 - 2019-10-23 |
|
| 157 |
+ |
|
| 158 |
+* Improvement: Improved error messages when using curl < 7.21.2 [#2108](https://github.com/guzzle/guzzle/pull/2108) |
|
| 159 |
+* Fix: Test if response is readable before returning a summary in `RequestException::getResponseBodySummary()` [#2081](https://github.com/guzzle/guzzle/pull/2081) |
|
| 160 |
+* Fix: Add support for GUZZLE_CURL_SELECT_TIMEOUT environment variable [#2161](https://github.com/guzzle/guzzle/pull/2161) |
|
| 161 |
+* Improvement: Added `GuzzleHttp\Exception\InvalidArgumentException` [#2163](https://github.com/guzzle/guzzle/pull/2163) |
|
| 162 |
+* Improvement: Added `GuzzleHttp\_current_time()` to use `hrtime()` if that function exists. [#2242](https://github.com/guzzle/guzzle/pull/2242) |
|
| 163 |
+* Improvement: Added curl's `appconnect_time` in `TransferStats` [#2284](https://github.com/guzzle/guzzle/pull/2284) |
|
| 164 |
+* Improvement: Make GuzzleException extend Throwable wherever it's available [#2273](https://github.com/guzzle/guzzle/pull/2273) |
|
| 165 |
+* Fix: Prevent concurrent writes to file when saving `CookieJar` [#2335](https://github.com/guzzle/guzzle/pull/2335) |
|
| 166 |
+* Improvement: Update `MockHandler` so we can test transfer time [#2362](https://github.com/guzzle/guzzle/pull/2362) |
|
| 167 |
+ |
|
| 168 |
+## 6.3.3 - 2018-04-22 |
|
| 169 |
+ |
|
| 170 |
+* Fix: Default headers when decode_content is specified |
|
| 171 |
+ |
|
| 172 |
+ |
|
| 173 |
+## 6.3.2 - 2018-03-26 |
|
| 174 |
+ |
|
| 175 |
+* Fix: Release process |
|
| 176 |
+ |
|
| 177 |
+ |
|
| 178 |
+## 6.3.1 - 2018-03-26 |
|
| 179 |
+ |
|
| 180 |
+* Bug fix: Parsing 0 epoch expiry times in cookies [#2014](https://github.com/guzzle/guzzle/pull/2014) |
|
| 181 |
+* Improvement: Better ConnectException detection [#2012](https://github.com/guzzle/guzzle/pull/2012) |
|
| 182 |
+* Bug fix: Malformed domain that contains a "/" [#1999](https://github.com/guzzle/guzzle/pull/1999) |
|
| 183 |
+* Bug fix: Undefined offset when a cookie has no first key-value pair [#1998](https://github.com/guzzle/guzzle/pull/1998) |
|
| 184 |
+* Improvement: Support PHPUnit 6 [#1953](https://github.com/guzzle/guzzle/pull/1953) |
|
| 185 |
+* Bug fix: Support empty headers [#1915](https://github.com/guzzle/guzzle/pull/1915) |
|
| 186 |
+* Bug fix: Ignore case during header modifications [#1916](https://github.com/guzzle/guzzle/pull/1916) |
|
| 187 |
+ |
|
| 188 |
++ Minor code cleanups, documentation fixes and clarifications. |
|
| 189 |
+ |
|
| 190 |
+ |
|
| 191 |
+## 6.3.0 - 2017-06-22 |
|
| 192 |
+ |
|
| 193 |
+* Feature: force IP resolution (ipv4 or ipv6) [#1608](https://github.com/guzzle/guzzle/pull/1608), [#1659](https://github.com/guzzle/guzzle/pull/1659) |
|
| 194 |
+* Improvement: Don't include summary in exception message when body is empty [#1621](https://github.com/guzzle/guzzle/pull/1621) |
|
| 195 |
+* Improvement: Handle `on_headers` option in MockHandler [#1580](https://github.com/guzzle/guzzle/pull/1580) |
|
| 196 |
+* Improvement: Added SUSE Linux CA path [#1609](https://github.com/guzzle/guzzle/issues/1609) |
|
| 197 |
+* Improvement: Use class reference for getting the name of the class instead of using hardcoded strings [#1641](https://github.com/guzzle/guzzle/pull/1641) |
|
| 198 |
+* Feature: Added `read_timeout` option [#1611](https://github.com/guzzle/guzzle/pull/1611) |
|
| 199 |
+* Bug fix: PHP 7.x fixes [#1685](https://github.com/guzzle/guzzle/pull/1685), [#1686](https://github.com/guzzle/guzzle/pull/1686), [#1811](https://github.com/guzzle/guzzle/pull/1811) |
|
| 200 |
+* Deprecation: BadResponseException instantiation without a response [#1642](https://github.com/guzzle/guzzle/pull/1642) |
|
| 201 |
+* Feature: Added NTLM auth [#1569](https://github.com/guzzle/guzzle/pull/1569) |
|
| 202 |
+* Feature: Track redirect HTTP status codes [#1711](https://github.com/guzzle/guzzle/pull/1711) |
|
| 203 |
+* Improvement: Check handler type during construction [#1745](https://github.com/guzzle/guzzle/pull/1745) |
|
| 204 |
+* Improvement: Always include the Content-Length if there's a body [#1721](https://github.com/guzzle/guzzle/pull/1721) |
|
| 205 |
+* Feature: Added convenience method to access a cookie by name [#1318](https://github.com/guzzle/guzzle/pull/1318) |
|
| 206 |
+* Bug fix: Fill `CURLOPT_CAPATH` and `CURLOPT_CAINFO` properly [#1684](https://github.com/guzzle/guzzle/pull/1684) |
|
| 207 |
+* Improvement: Use `\GuzzleHttp\Promise\rejection_for` function instead of object init [#1827](https://github.com/guzzle/guzzle/pull/1827) |
|
| 208 |
+ |
|
| 209 |
+ |
|
| 210 |
++ Minor code cleanups, documentation fixes and clarifications. |
|
| 211 |
+ |
|
| 212 |
+## 6.2.3 - 2017-02-28 |
|
| 213 |
+ |
|
| 214 |
+* Fix deprecations with guzzle/psr7 version 1.4 |
|
| 215 |
+ |
|
| 216 |
+## 6.2.2 - 2016-10-08 |
|
| 217 |
+ |
|
| 218 |
+* Allow to pass nullable Response to delay callable |
|
| 219 |
+* Only add scheme when host is present |
|
| 220 |
+* Fix drain case where content-length is the literal string zero |
|
| 221 |
+* Obfuscate in-URL credentials in exceptions |
|
| 222 |
+ |
|
| 223 |
+## 6.2.1 - 2016-07-18 |
|
| 224 |
+ |
|
| 225 |
+* Address HTTP_PROXY security vulnerability, CVE-2016-5385: |
|
| 226 |
+ https://httpoxy.org/ |
|
| 227 |
+* Fixing timeout bug with StreamHandler: |
|
| 228 |
+ https://github.com/guzzle/guzzle/pull/1488 |
|
| 229 |
+* Only read up to `Content-Length` in PHP StreamHandler to avoid timeouts when |
|
| 230 |
+ a server does not honor `Connection: close`. |
|
| 231 |
+* Ignore URI fragment when sending requests. |
|
| 232 |
+ |
|
| 233 |
+## 6.2.0 - 2016-03-21 |
|
| 234 |
+ |
|
| 235 |
+* Feature: added `GuzzleHttp\json_encode` and `GuzzleHttp\json_decode`. |
|
| 236 |
+ https://github.com/guzzle/guzzle/pull/1389 |
|
| 237 |
+* Bug fix: Fix sleep calculation when waiting for delayed requests. |
|
| 238 |
+ https://github.com/guzzle/guzzle/pull/1324 |
|
| 239 |
+* Feature: More flexible history containers. |
|
| 240 |
+ https://github.com/guzzle/guzzle/pull/1373 |
|
| 241 |
+* Bug fix: defer sink stream opening in StreamHandler. |
|
| 242 |
+ https://github.com/guzzle/guzzle/pull/1377 |
|
| 243 |
+* Bug fix: do not attempt to escape cookie values. |
|
| 244 |
+ https://github.com/guzzle/guzzle/pull/1406 |
|
| 245 |
+* Feature: report original content encoding and length on decoded responses. |
|
| 246 |
+ https://github.com/guzzle/guzzle/pull/1409 |
|
| 247 |
+* Bug fix: rewind seekable request bodies before dispatching to cURL. |
|
| 248 |
+ https://github.com/guzzle/guzzle/pull/1422 |
|
| 249 |
+* Bug fix: provide an empty string to `http_build_query` for HHVM workaround. |
|
| 250 |
+ https://github.com/guzzle/guzzle/pull/1367 |
|
| 251 |
+ |
|
| 252 |
+## 6.1.1 - 2015-11-22 |
|
| 253 |
+ |
|
| 254 |
+* Bug fix: Proxy::wrapSync() now correctly proxies to the appropriate handler |
|
| 255 |
+ https://github.com/guzzle/guzzle/commit/911bcbc8b434adce64e223a6d1d14e9a8f63e4e4 |
|
| 256 |
+* Feature: HandlerStack is now more generic. |
|
| 257 |
+ https://github.com/guzzle/guzzle/commit/f2102941331cda544745eedd97fc8fd46e1ee33e |
|
| 258 |
+* Bug fix: setting verify to false in the StreamHandler now disables peer |
|
| 259 |
+ verification. https://github.com/guzzle/guzzle/issues/1256 |
|
| 260 |
+* Feature: Middleware now uses an exception factory, including more error |
|
| 261 |
+ context. https://github.com/guzzle/guzzle/pull/1282 |
|
| 262 |
+* Feature: better support for disabled functions. |
|
| 263 |
+ https://github.com/guzzle/guzzle/pull/1287 |
|
| 264 |
+* Bug fix: fixed regression where MockHandler was not using `sink`. |
|
| 265 |
+ https://github.com/guzzle/guzzle/pull/1292 |
|
| 266 |
+ |
|
| 267 |
+## 6.1.0 - 2015-09-08 |
|
| 268 |
+ |
|
| 269 |
+* Feature: Added the `on_stats` request option to provide access to transfer |
|
| 270 |
+ statistics for requests. https://github.com/guzzle/guzzle/pull/1202 |
|
| 271 |
+* Feature: Added the ability to persist session cookies in CookieJars. |
|
| 272 |
+ https://github.com/guzzle/guzzle/pull/1195 |
|
| 273 |
+* Feature: Some compatibility updates for Google APP Engine |
|
| 274 |
+ https://github.com/guzzle/guzzle/pull/1216 |
|
| 275 |
+* Feature: Added support for NO_PROXY to prevent the use of a proxy based on |
|
| 276 |
+ a simple set of rules. https://github.com/guzzle/guzzle/pull/1197 |
|
| 277 |
+* Feature: Cookies can now contain square brackets. |
|
| 278 |
+ https://github.com/guzzle/guzzle/pull/1237 |
|
| 279 |
+* Bug fix: Now correctly parsing `=` inside of quotes in Cookies. |
|
| 280 |
+ https://github.com/guzzle/guzzle/pull/1232 |
|
| 281 |
+* Bug fix: Cusotm cURL options now correctly override curl options of the |
|
| 282 |
+ same name. https://github.com/guzzle/guzzle/pull/1221 |
|
| 283 |
+* Bug fix: Content-Type header is now added when using an explicitly provided |
|
| 284 |
+ multipart body. https://github.com/guzzle/guzzle/pull/1218 |
|
| 285 |
+* Bug fix: Now ignoring Set-Cookie headers that have no name. |
|
| 286 |
+* Bug fix: Reason phrase is no longer cast to an int in some cases in the |
|
| 287 |
+ cURL handler. https://github.com/guzzle/guzzle/pull/1187 |
|
| 288 |
+* Bug fix: Remove the Authorization header when redirecting if the Host |
|
| 289 |
+ header changes. https://github.com/guzzle/guzzle/pull/1207 |
|
| 290 |
+* Bug fix: Cookie path matching fixes |
|
| 291 |
+ https://github.com/guzzle/guzzle/issues/1129 |
|
| 292 |
+* Bug fix: Fixing the cURL `body_as_string` setting |
|
| 293 |
+ https://github.com/guzzle/guzzle/pull/1201 |
|
| 294 |
+* Bug fix: quotes are no longer stripped when parsing cookies. |
|
| 295 |
+ https://github.com/guzzle/guzzle/issues/1172 |
|
| 296 |
+* Bug fix: `form_params` and `query` now always uses the `&` separator. |
|
| 297 |
+ https://github.com/guzzle/guzzle/pull/1163 |
|
| 298 |
+* Bug fix: Adding a Content-Length to PHP stream wrapper requests if not set. |
|
| 299 |
+ https://github.com/guzzle/guzzle/pull/1189 |
|
| 300 |
+ |
|
| 301 |
+## 6.0.2 - 2015-07-04 |
|
| 302 |
+ |
|
| 303 |
+* Fixed a memory leak in the curl handlers in which references to callbacks |
|
| 304 |
+ were not being removed by `curl_reset`. |
|
| 305 |
+* Cookies are now extracted properly before redirects. |
|
| 306 |
+* Cookies now allow more character ranges. |
|
| 307 |
+* Decoded Content-Encoding responses are now modified to correctly reflect |
|
| 308 |
+ their state if the encoding was automatically removed by a handler. This |
|
| 309 |
+ means that the `Content-Encoding` header may be removed an the |
|
| 310 |
+ `Content-Length` modified to reflect the message size after removing the |
|
| 311 |
+ encoding. |
|
| 312 |
+* Added a more explicit error message when trying to use `form_params` and |
|
| 313 |
+ `multipart` in the same request. |
|
| 314 |
+* Several fixes for HHVM support. |
|
| 315 |
+* Functions are now conditionally required using an additional level of |
|
| 316 |
+ indirection to help with global Composer installations. |
|
| 317 |
+ |
|
| 318 |
+## 6.0.1 - 2015-05-27 |
|
| 319 |
+ |
|
| 320 |
+* Fixed a bug with serializing the `query` request option where the `&` |
|
| 321 |
+ separator was missing. |
|
| 322 |
+* Added a better error message for when `body` is provided as an array. Please |
|
| 323 |
+ use `form_params` or `multipart` instead. |
|
| 324 |
+* Various doc fixes. |
|
| 325 |
+ |
|
| 326 |
+## 6.0.0 - 2015-05-26 |
|
| 327 |
+ |
|
| 328 |
+* See the UPGRADING.md document for more information. |
|
| 329 |
+* Added `multipart` and `form_params` request options. |
|
| 330 |
+* Added `synchronous` request option. |
|
| 331 |
+* Added the `on_headers` request option. |
|
| 332 |
+* Fixed `expect` handling. |
|
| 333 |
+* No longer adding default middlewares in the client ctor. These need to be |
|
| 334 |
+ present on the provided handler in order to work. |
|
| 335 |
+* Requests are no longer initiated when sending async requests with the |
|
| 336 |
+ CurlMultiHandler. This prevents unexpected recursion from requests completing |
|
| 337 |
+ while ticking the cURL loop. |
|
| 338 |
+* Removed the semantics of setting `default` to `true`. This is no longer |
|
| 339 |
+ required now that the cURL loop is not ticked for async requests. |
|
| 340 |
+* Added request and response logging middleware. |
|
| 341 |
+* No longer allowing self signed certificates when using the StreamHandler. |
|
| 342 |
+* Ensuring that `sink` is valid if saving to a file. |
|
| 343 |
+* Request exceptions now include a "handler context" which provides handler |
|
| 344 |
+ specific contextual information. |
|
| 345 |
+* Added `GuzzleHttp\RequestOptions` to allow request options to be applied |
|
| 346 |
+ using constants. |
|
| 347 |
+* `$maxHandles` has been removed from CurlMultiHandler. |
|
| 348 |
+* `MultipartPostBody` is now part of the `guzzlehttp/psr7` package. |
|
| 349 |
+ |
|
| 350 |
+## 5.3.0 - 2015-05-19 |
|
| 351 |
+ |
|
| 352 |
+* Mock now supports `save_to` |
|
| 353 |
+* Marked `AbstractRequestEvent::getTransaction()` as public. |
|
| 354 |
+* Fixed a bug in which multiple headers using different casing would overwrite |
|
| 355 |
+ previous headers in the associative array. |
|
| 356 |
+* Added `Utils::getDefaultHandler()` |
|
| 357 |
+* Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated. |
|
| 358 |
+* URL scheme is now always lowercased. |
|
| 359 |
+ |
|
| 360 |
+## 6.0.0-beta.1 |
|
| 361 |
+ |
|
| 362 |
+* Requires PHP >= 5.5 |
|
| 363 |
+* Updated to use PSR-7 |
|
| 364 |
+ * Requires immutable messages, which basically means an event based system |
|
| 365 |
+ owned by a request instance is no longer possible. |
|
| 366 |
+ * Utilizing the [Guzzle PSR-7 package](https://github.com/guzzle/psr7). |
|
| 367 |
+ * Removed the dependency on `guzzlehttp/streams`. These stream abstractions |
|
| 368 |
+ are available in the `guzzlehttp/psr7` package under the `GuzzleHttp\Psr7` |
|
| 369 |
+ namespace. |
|
| 370 |
+* Added middleware and handler system |
|
| 371 |
+ * Replaced the Guzzle event and subscriber system with a middleware system. |
|
| 372 |
+ * No longer depends on RingPHP, but rather places the HTTP handlers directly |
|
| 373 |
+ in Guzzle, operating on PSR-7 messages. |
|
| 374 |
+ * Retry logic is now encapsulated in `GuzzleHttp\Middleware::retry`, which |
|
| 375 |
+ means the `guzzlehttp/retry-subscriber` is now obsolete. |
|
| 376 |
+ * Mocking responses is now handled using `GuzzleHttp\Handler\MockHandler`. |
|
| 377 |
+* Asynchronous responses |
|
| 378 |
+ * No longer supports the `future` request option to send an async request. |
|
| 379 |
+ Instead, use one of the `*Async` methods of a client (e.g., `requestAsync`, |
|
| 380 |
+ `getAsync`, etc.). |
|
| 381 |
+ * Utilizing `GuzzleHttp\Promise` instead of React's promise library to avoid |
|
| 382 |
+ recursion required by chaining and forwarding react promises. See |
|
| 383 |
+ https://github.com/guzzle/promises |
|
| 384 |
+ * Added `requestAsync` and `sendAsync` to send request asynchronously. |
|
| 385 |
+ * Added magic methods for `getAsync()`, `postAsync()`, etc. to send requests |
|
| 386 |
+ asynchronously. |
|
| 387 |
+* Request options |
|
| 388 |
+ * POST and form updates |
|
| 389 |
+ * Added the `form_fields` and `form_files` request options. |
|
| 390 |
+ * Removed the `GuzzleHttp\Post` namespace. |
|
| 391 |
+ * The `body` request option no longer accepts an array for POST requests. |
|
| 392 |
+ * The `exceptions` request option has been deprecated in favor of the |
|
| 393 |
+ `http_errors` request options. |
|
| 394 |
+ * The `save_to` request option has been deprecated in favor of `sink` request |
|
| 395 |
+ option. |
|
| 396 |
+* Clients no longer accept an array of URI template string and variables for |
|
| 397 |
+ URI variables. You will need to expand URI templates before passing them |
|
| 398 |
+ into a client constructor or request method. |
|
| 399 |
+* Client methods `get()`, `post()`, `put()`, `patch()`, `options()`, etc. are |
|
| 400 |
+ now magic methods that will send synchronous requests. |
|
| 401 |
+* Replaced `Utils.php` with plain functions in `functions.php`. |
|
| 402 |
+* Removed `GuzzleHttp\Collection`. |
|
| 403 |
+* Removed `GuzzleHttp\BatchResults`. Batched pool results are now returned as |
|
| 404 |
+ an array. |
|
| 405 |
+* Removed `GuzzleHttp\Query`. Query string handling is now handled using an |
|
| 406 |
+ associative array passed into the `query` request option. The query string |
|
| 407 |
+ is serialized using PHP's `http_build_query`. If you need more control, you |
|
| 408 |
+ can pass the query string in as a string. |
|
| 409 |
+* `GuzzleHttp\QueryParser` has been replaced with the |
|
| 410 |
+ `GuzzleHttp\Psr7\parse_query`. |
|
| 411 |
+ |
|
| 412 |
+## 5.2.0 - 2015-01-27 |
|
| 413 |
+ |
|
| 414 |
+* Added `AppliesHeadersInterface` to make applying headers to a request based |
|
| 415 |
+ on the body more generic and not specific to `PostBodyInterface`. |
|
| 416 |
+* Reduced the number of stack frames needed to send requests. |
|
| 417 |
+* Nested futures are now resolved in the client rather than the RequestFsm |
|
| 418 |
+* Finishing state transitions is now handled in the RequestFsm rather than the |
|
| 419 |
+ RingBridge. |
|
| 420 |
+* Added a guard in the Pool class to not use recursion for request retries. |
|
| 421 |
+ |
|
| 422 |
+## 5.1.0 - 2014-12-19 |
|
| 423 |
+ |
|
| 424 |
+* Pool class no longer uses recursion when a request is intercepted. |
|
| 425 |
+* The size of a Pool can now be dynamically adjusted using a callback. |
|
| 426 |
+ See https://github.com/guzzle/guzzle/pull/943. |
|
| 427 |
+* Setting a request option to `null` when creating a request with a client will |
|
| 428 |
+ ensure that the option is not set. This allows you to overwrite default |
|
| 429 |
+ request options on a per-request basis. |
|
| 430 |
+ See https://github.com/guzzle/guzzle/pull/937. |
|
| 431 |
+* Added the ability to limit which protocols are allowed for redirects by |
|
| 432 |
+ specifying a `protocols` array in the `allow_redirects` request option. |
|
| 433 |
+* Nested futures due to retries are now resolved when waiting for synchronous |
|
| 434 |
+ responses. See https://github.com/guzzle/guzzle/pull/947. |
|
| 435 |
+* `"0"` is now an allowed URI path. See |
|
| 436 |
+ https://github.com/guzzle/guzzle/pull/935. |
|
| 437 |
+* `Query` no longer typehints on the `$query` argument in the constructor, |
|
| 438 |
+ allowing for strings and arrays. |
|
| 439 |
+* Exceptions thrown in the `end` event are now correctly wrapped with Guzzle |
|
| 440 |
+ specific exceptions if necessary. |
|
| 441 |
+ |
|
| 442 |
+## 5.0.3 - 2014-11-03 |
|
| 443 |
+ |
|
| 444 |
+This change updates query strings so that they are treated as un-encoded values |
|
| 445 |
+by default where the value represents an un-encoded value to send over the |
|
| 446 |
+wire. A Query object then encodes the value before sending over the wire. This |
|
| 447 |
+means that even value query string values (e.g., ":") are url encoded. This |
|
| 448 |
+makes the Query class match PHP's http_build_query function. However, if you |
|
| 449 |
+want to send requests over the wire using valid query string characters that do |
|
| 450 |
+not need to be encoded, then you can provide a string to Url::setQuery() and |
|
| 451 |
+pass true as the second argument to specify that the query string is a raw |
|
| 452 |
+string that should not be parsed or encoded (unless a call to getQuery() is |
|
| 453 |
+subsequently made, forcing the query-string to be converted into a Query |
|
| 454 |
+object). |
|
| 455 |
+ |
|
| 456 |
+## 5.0.2 - 2014-10-30 |
|
| 457 |
+ |
|
| 458 |
+* Added a trailing `\r\n` to multipart/form-data payloads. See |
|
| 459 |
+ https://github.com/guzzle/guzzle/pull/871 |
|
| 460 |
+* Added a `GuzzleHttp\Pool::send()` convenience method to match the docs. |
|
| 461 |
+* Status codes are now returned as integers. See |
|
| 462 |
+ https://github.com/guzzle/guzzle/issues/881 |
|
| 463 |
+* No longer overwriting an existing `application/x-www-form-urlencoded` header |
|
| 464 |
+ when sending POST requests, allowing for customized headers. See |
|
| 465 |
+ https://github.com/guzzle/guzzle/issues/877 |
|
| 466 |
+* Improved path URL serialization. |
|
| 467 |
+ |
|
| 468 |
+ * No longer double percent-encoding characters in the path or query string if |
|
| 469 |
+ they are already encoded. |
|
| 470 |
+ * Now properly encoding the supplied path to a URL object, instead of only |
|
| 471 |
+ encoding ' ' and '?'. |
|
| 472 |
+ * Note: This has been changed in 5.0.3 to now encode query string values by |
|
| 473 |
+ default unless the `rawString` argument is provided when setting the query |
|
| 474 |
+ string on a URL: Now allowing many more characters to be present in the |
|
| 475 |
+ query string without being percent encoded. See https://tools.ietf.org/html/rfc3986#appendix-A |
|
| 476 |
+ |
|
| 477 |
+## 5.0.1 - 2014-10-16 |
|
| 478 |
+ |
|
| 479 |
+Bugfix release. |
|
| 480 |
+ |
|
| 481 |
+* Fixed an issue where connection errors still returned response object in |
|
| 482 |
+ error and end events event though the response is unusable. This has been |
|
| 483 |
+ corrected so that a response is not returned in the `getResponse` method of |
|
| 484 |
+ these events if the response did not complete. https://github.com/guzzle/guzzle/issues/867 |
|
| 485 |
+* Fixed an issue where transfer statistics were not being populated in the |
|
| 486 |
+ RingBridge. https://github.com/guzzle/guzzle/issues/866 |
|
| 487 |
+ |
|
| 488 |
+## 5.0.0 - 2014-10-12 |
|
| 489 |
+ |
|
| 490 |
+Adding support for non-blocking responses and some minor API cleanup. |
|
| 491 |
+ |
|
| 492 |
+### New Features |
|
| 493 |
+ |
|
| 494 |
+* Added support for non-blocking responses based on `guzzlehttp/guzzle-ring`. |
|
| 495 |
+* Added a public API for creating a default HTTP adapter. |
|
| 496 |
+* Updated the redirect plugin to be non-blocking so that redirects are sent |
|
| 497 |
+ concurrently. Other plugins like this can now be updated to be non-blocking. |
|
| 498 |
+* Added a "progress" event so that you can get upload and download progress |
|
| 499 |
+ events. |
|
| 500 |
+* Added `GuzzleHttp\Pool` which implements FutureInterface and transfers |
|
| 501 |
+ requests concurrently using a capped pool size as efficiently as possible. |
|
| 502 |
+* Added `hasListeners()` to EmitterInterface. |
|
| 503 |
+* Removed `GuzzleHttp\ClientInterface::sendAll` and marked |
|
| 504 |
+ `GuzzleHttp\Client::sendAll` as deprecated (it's still there, just not the |
|
| 505 |
+ recommended way). |
|
| 506 |
+ |
|
| 507 |
+### Breaking changes |
|
| 508 |
+ |
|
| 509 |
+The breaking changes in this release are relatively minor. The biggest thing to |
|
| 510 |
+look out for is that request and response objects no longer implement fluent |
|
| 511 |
+interfaces. |
|
| 512 |
+ |
|
| 513 |
+* Removed the fluent interfaces (i.e., `return $this`) from requests, |
|
| 514 |
+ responses, `GuzzleHttp\Collection`, `GuzzleHttp\Url`, |
|
| 515 |
+ `GuzzleHttp\Query`, `GuzzleHttp\Post\PostBody`, and |
|
| 516 |
+ `GuzzleHttp\Cookie\SetCookie`. This blog post provides a good outline of |
|
| 517 |
+ why I did this: https://ocramius.github.io/blog/fluent-interfaces-are-evil/. |
|
| 518 |
+ This also makes the Guzzle message interfaces compatible with the current |
|
| 519 |
+ PSR-7 message proposal. |
|
| 520 |
+* Removed "functions.php", so that Guzzle is truly PSR-4 compliant. Except |
|
| 521 |
+ for the HTTP request functions from function.php, these functions are now |
|
| 522 |
+ implemented in `GuzzleHttp\Utils` using camelCase. `GuzzleHttp\json_decode` |
|
| 523 |
+ moved to `GuzzleHttp\Utils::jsonDecode`. `GuzzleHttp\get_path` moved to |
|
| 524 |
+ `GuzzleHttp\Utils::getPath`. `GuzzleHttp\set_path` moved to |
|
| 525 |
+ `GuzzleHttp\Utils::setPath`. `GuzzleHttp\batch` should now be |
|
| 526 |
+ `GuzzleHttp\Pool::batch`, which returns an `objectStorage`. Using functions.php |
|
| 527 |
+ caused problems for many users: they aren't PSR-4 compliant, require an |
|
| 528 |
+ explicit include, and needed an if-guard to ensure that the functions are not |
|
| 529 |
+ declared multiple times. |
|
| 530 |
+* Rewrote adapter layer. |
|
| 531 |
+ * Removing all classes from `GuzzleHttp\Adapter`, these are now |
|
| 532 |
+ implemented as callables that are stored in `GuzzleHttp\Ring\Client`. |
|
| 533 |
+ * Removed the concept of "parallel adapters". Sending requests serially or |
|
| 534 |
+ concurrently is now handled using a single adapter. |
|
| 535 |
+ * Moved `GuzzleHttp\Adapter\Transaction` to `GuzzleHttp\Transaction`. The |
|
| 536 |
+ Transaction object now exposes the request, response, and client as public |
|
| 537 |
+ properties. The getters and setters have been removed. |
|
| 538 |
+* Removed the "headers" event. This event was only useful for changing the |
|
| 539 |
+ body a response once the headers of the response were known. You can implement |
|
| 540 |
+ a similar behavior in a number of ways. One example might be to use a |
|
| 541 |
+ FnStream that has access to the transaction being sent. For example, when the |
|
| 542 |
+ first byte is written, you could check if the response headers match your |
|
| 543 |
+ expectations, and if so, change the actual stream body that is being |
|
| 544 |
+ written to. |
|
| 545 |
+* Removed the `asArray` parameter from |
|
| 546 |
+ `GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header |
|
| 547 |
+ value as an array, then use the newly added `getHeaderAsArray()` method of |
|
| 548 |
+ `MessageInterface`. This change makes the Guzzle interfaces compatible with |
|
| 549 |
+ the PSR-7 interfaces. |
|
| 550 |
+* `GuzzleHttp\Message\MessageFactory` no longer allows subclasses to add |
|
| 551 |
+ custom request options using double-dispatch (this was an implementation |
|
| 552 |
+ detail). Instead, you should now provide an associative array to the |
|
| 553 |
+ constructor which is a mapping of the request option name mapping to a |
|
| 554 |
+ function that applies the option value to a request. |
|
| 555 |
+* Removed the concept of "throwImmediately" from exceptions and error events. |
|
| 556 |
+ This control mechanism was used to stop a transfer of concurrent requests |
|
| 557 |
+ from completing. This can now be handled by throwing the exception or by |
|
| 558 |
+ cancelling a pool of requests or each outstanding future request individually. |
|
| 559 |
+* Updated to "GuzzleHttp\Streams" 3.0. |
|
| 560 |
+ * `GuzzleHttp\Stream\StreamInterface::getContents()` no longer accepts a |
|
| 561 |
+ `maxLen` parameter. This update makes the Guzzle streams project |
|
| 562 |
+ compatible with the current PSR-7 proposal. |
|
| 563 |
+ * `GuzzleHttp\Stream\Stream::__construct`, |
|
| 564 |
+ `GuzzleHttp\Stream\Stream::factory`, and |
|
| 565 |
+ `GuzzleHttp\Stream\Utils::create` no longer accept a size in the second |
|
| 566 |
+ argument. They now accept an associative array of options, including the |
|
| 567 |
+ "size" key and "metadata" key which can be used to provide custom metadata. |
|
| 568 |
+ |
|
| 569 |
+## 4.2.2 - 2014-09-08 |
|
| 570 |
+ |
|
| 571 |
+* Fixed a memory leak in the CurlAdapter when reusing cURL handles. |
|
| 572 |
+* No longer using `request_fulluri` in stream adapter proxies. |
|
| 573 |
+* Relative redirects are now based on the last response, not the first response. |
|
| 574 |
+ |
|
| 575 |
+## 4.2.1 - 2014-08-19 |
|
| 576 |
+ |
|
| 577 |
+* Ensuring that the StreamAdapter does not always add a Content-Type header |
|
| 578 |
+* Adding automated github releases with a phar and zip |
|
| 579 |
+ |
|
| 580 |
+## 4.2.0 - 2014-08-17 |
|
| 581 |
+ |
|
| 582 |
+* Now merging in default options using a case-insensitive comparison. |
|
| 583 |
+ Closes https://github.com/guzzle/guzzle/issues/767 |
|
| 584 |
+* Added the ability to automatically decode `Content-Encoding` response bodies |
|
| 585 |
+ using the `decode_content` request option. This is set to `true` by default |
|
| 586 |
+ to decode the response body if it comes over the wire with a |
|
| 587 |
+ `Content-Encoding`. Set this value to `false` to disable decoding the |
|
| 588 |
+ response content, and pass a string to provide a request `Accept-Encoding` |
|
| 589 |
+ header and turn on automatic response decoding. This feature now allows you |
|
| 590 |
+ to pass an `Accept-Encoding` header in the headers of a request but still |
|
| 591 |
+ disable automatic response decoding. |
|
| 592 |
+ Closes https://github.com/guzzle/guzzle/issues/764 |
|
| 593 |
+* Added the ability to throw an exception immediately when transferring |
|
| 594 |
+ requests in parallel. Closes https://github.com/guzzle/guzzle/issues/760 |
|
| 595 |
+* Updating guzzlehttp/streams dependency to ~2.1 |
|
| 596 |
+* No longer utilizing the now deprecated namespaced methods from the stream |
|
| 597 |
+ package. |
|
| 598 |
+ |
|
| 599 |
+## 4.1.8 - 2014-08-14 |
|
| 600 |
+ |
|
| 601 |
+* Fixed an issue in the CurlFactory that caused setting the `stream=false` |
|
| 602 |
+ request option to throw an exception. |
|
| 603 |
+ See: https://github.com/guzzle/guzzle/issues/769 |
|
| 604 |
+* TransactionIterator now calls rewind on the inner iterator. |
|
| 605 |
+ See: https://github.com/guzzle/guzzle/pull/765 |
|
| 606 |
+* You can now set the `Content-Type` header to `multipart/form-data` |
|
| 607 |
+ when creating POST requests to force multipart bodies. |
|
| 608 |
+ See https://github.com/guzzle/guzzle/issues/768 |
|
| 609 |
+ |
|
| 610 |
+## 4.1.7 - 2014-08-07 |
|
| 611 |
+ |
|
| 612 |
+* Fixed an error in the HistoryPlugin that caused the same request and response |
|
| 613 |
+ to be logged multiple times when an HTTP protocol error occurs. |
|
| 614 |
+* Ensuring that cURL does not add a default Content-Type when no Content-Type |
|
| 615 |
+ has been supplied by the user. This prevents the adapter layer from modifying |
|
| 616 |
+ the request that is sent over the wire after any listeners may have already |
|
| 617 |
+ put the request in a desired state (e.g., signed the request). |
|
| 618 |
+* Throwing an exception when you attempt to send requests that have the |
|
| 619 |
+ "stream" set to true in parallel using the MultiAdapter. |
|
| 620 |
+* Only calling curl_multi_select when there are active cURL handles. This was |
|
| 621 |
+ previously changed and caused performance problems on some systems due to PHP |
|
| 622 |
+ always selecting until the maximum select timeout. |
|
| 623 |
+* Fixed a bug where multipart/form-data POST fields were not correctly |
|
| 624 |
+ aggregated (e.g., values with "&"). |
|
| 625 |
+ |
|
| 626 |
+## 4.1.6 - 2014-08-03 |
|
| 627 |
+ |
|
| 628 |
+* Added helper methods to make it easier to represent messages as strings, |
|
| 629 |
+ including getting the start line and getting headers as a string. |
|
| 630 |
+ |
|
| 631 |
+## 4.1.5 - 2014-08-02 |
|
| 632 |
+ |
|
| 633 |
+* Automatically retrying cURL "Connection died, retrying a fresh connect" |
|
| 634 |
+ errors when possible. |
|
| 635 |
+* cURL implementation cleanup |
|
| 636 |
+* Allowing multiple event subscriber listeners to be registered per event by |
|
| 637 |
+ passing an array of arrays of listener configuration. |
|
| 638 |
+ |
|
| 639 |
+## 4.1.4 - 2014-07-22 |
|
| 640 |
+ |
|
| 641 |
+* Fixed a bug that caused multi-part POST requests with more than one field to |
|
| 642 |
+ serialize incorrectly. |
|
| 643 |
+* Paths can now be set to "0" |
|
| 644 |
+* `ResponseInterface::xml` now accepts a `libxml_options` option and added a |
|
| 645 |
+ missing default argument that was required when parsing XML response bodies. |
|
| 646 |
+* A `save_to` stream is now created lazily, which means that files are not |
|
| 647 |
+ created on disk unless a request succeeds. |
|
| 648 |
+ |
|
| 649 |
+## 4.1.3 - 2014-07-15 |
|
| 650 |
+ |
|
| 651 |
+* Various fixes to multipart/form-data POST uploads |
|
| 652 |
+* Wrapping function.php in an if-statement to ensure Guzzle can be used |
|
| 653 |
+ globally and in a Composer install |
|
| 654 |
+* Fixed an issue with generating and merging in events to an event array |
|
| 655 |
+* POST headers are only applied before sending a request to allow you to change |
|
| 656 |
+ the query aggregator used before uploading |
|
| 657 |
+* Added much more robust query string parsing |
|
| 658 |
+* Fixed various parsing and normalization issues with URLs |
|
| 659 |
+* Fixing an issue where multi-valued headers were not being utilized correctly |
|
| 660 |
+ in the StreamAdapter |
|
| 661 |
+ |
|
| 662 |
+## 4.1.2 - 2014-06-18 |
|
| 663 |
+ |
|
| 664 |
+* Added support for sending payloads with GET requests |
|
| 665 |
+ |
|
| 666 |
+## 4.1.1 - 2014-06-08 |
|
| 667 |
+ |
|
| 668 |
+* Fixed an issue related to using custom message factory options in subclasses |
|
| 669 |
+* Fixed an issue with nested form fields in a multi-part POST |
|
| 670 |
+* Fixed an issue with using the `json` request option for POST requests |
|
| 671 |
+* Added `ToArrayInterface` to `GuzzleHttp\Cookie\CookieJar` |
|
| 672 |
+ |
|
| 673 |
+## 4.1.0 - 2014-05-27 |
|
| 674 |
+ |
|
| 675 |
+* Added a `json` request option to easily serialize JSON payloads. |
|
| 676 |
+* Added a `GuzzleHttp\json_decode()` wrapper to safely parse JSON. |
|
| 677 |
+* Added `setPort()` and `getPort()` to `GuzzleHttp\Message\RequestInterface`. |
|
| 678 |
+* Added the ability to provide an emitter to a client in the client constructor. |
|
| 679 |
+* Added the ability to persist a cookie session using $_SESSION. |
|
| 680 |
+* Added a trait that can be used to add event listeners to an iterator. |
|
| 681 |
+* Removed request method constants from RequestInterface. |
|
| 682 |
+* Fixed warning when invalid request start-lines are received. |
|
| 683 |
+* Updated MessageFactory to work with custom request option methods. |
|
| 684 |
+* Updated cacert bundle to latest build. |
|
| 685 |
+ |
|
| 686 |
+4.0.2 (2014-04-16) |
|
| 687 |
+------------------ |
|
| 688 |
+ |
|
| 689 |
+* Proxy requests using the StreamAdapter now properly use request_fulluri (#632) |
|
| 690 |
+* Added the ability to set scalars as POST fields (#628) |
|
| 691 |
+ |
|
| 692 |
+## 4.0.1 - 2014-04-04 |
|
| 693 |
+ |
|
| 694 |
+* The HTTP status code of a response is now set as the exception code of |
|
| 695 |
+ RequestException objects. |
|
| 696 |
+* 303 redirects will now correctly switch from POST to GET requests. |
|
| 697 |
+* The default parallel adapter of a client now correctly uses the MultiAdapter. |
|
| 698 |
+* HasDataTrait now initializes the internal data array as an empty array so |
|
| 699 |
+ that the toArray() method always returns an array. |
|
| 700 |
+ |
|
| 701 |
+## 4.0.0 - 2014-03-29 |
|
| 702 |
+ |
|
| 703 |
+* For information on changes and upgrading, see: |
|
| 704 |
+ https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 |
|
| 705 |
+* Added `GuzzleHttp\batch()` as a convenience function for sending requests in |
|
| 706 |
+ parallel without needing to write asynchronous code. |
|
| 707 |
+* Restructured how events are added to `GuzzleHttp\ClientInterface::sendAll()`. |
|
| 708 |
+ You can now pass a callable or an array of associative arrays where each |
|
| 709 |
+ associative array contains the "fn", "priority", and "once" keys. |
|
| 710 |
+ |
|
| 711 |
+## 4.0.0.rc-2 - 2014-03-25 |
|
| 712 |
+ |
|
| 713 |
+* Removed `getConfig()` and `setConfig()` from clients to avoid confusion |
|
| 714 |
+ around whether things like base_url, message_factory, etc. should be able to |
|
| 715 |
+ be retrieved or modified. |
|
| 716 |
+* Added `getDefaultOption()` and `setDefaultOption()` to ClientInterface |
|
| 717 |
+* functions.php functions were renamed using snake_case to match PHP idioms |
|
| 718 |
+* Added support for `HTTP_PROXY`, `HTTPS_PROXY`, and |
|
| 719 |
+ `GUZZLE_CURL_SELECT_TIMEOUT` environment variables |
|
| 720 |
+* Added the ability to specify custom `sendAll()` event priorities |
|
| 721 |
+* Added the ability to specify custom stream context options to the stream |
|
| 722 |
+ adapter. |
|
| 723 |
+* Added a functions.php function for `get_path()` and `set_path()` |
|
| 724 |
+* CurlAdapter and MultiAdapter now use a callable to generate curl resources |
|
| 725 |
+* MockAdapter now properly reads a body and emits a `headers` event |
|
| 726 |
+* Updated Url class to check if a scheme and host are set before adding ":" |
|
| 727 |
+ and "//". This allows empty Url (e.g., "") to be serialized as "". |
|
| 728 |
+* Parsing invalid XML no longer emits warnings |
|
| 729 |
+* Curl classes now properly throw AdapterExceptions |
|
| 730 |
+* Various performance optimizations |
|
| 731 |
+* Streams are created with the faster `Stream\create()` function |
|
| 732 |
+* Marked deprecation_proxy() as internal |
|
| 733 |
+* Test server is now a collection of static methods on a class |
|
| 734 |
+ |
|
| 735 |
+## 4.0.0-rc.1 - 2014-03-15 |
|
| 736 |
+ |
|
| 737 |
+* See https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 |
|
| 738 |
+ |
|
| 739 |
+## 3.8.1 - 2014-01-28 |
|
| 740 |
+ |
|
| 741 |
+* Bug: Always using GET requests when redirecting from a 303 response |
|
| 742 |
+* Bug: CURLOPT_SSL_VERIFYHOST is now correctly set to false when setting `$certificateAuthority` to false in |
|
| 743 |
+ `Guzzle\Http\ClientInterface::setSslVerification()` |
|
| 744 |
+* Bug: RedirectPlugin now uses strict RFC 3986 compliance when combining a base URL with a relative URL |
|
| 745 |
+* Bug: The body of a request can now be set to `"0"` |
|
| 746 |
+* Sending PHP stream requests no longer forces `HTTP/1.0` |
|
| 747 |
+* Adding more information to ExceptionCollection exceptions so that users have more context, including a stack trace of |
|
| 748 |
+ each sub-exception |
|
| 749 |
+* Updated the `$ref` attribute in service descriptions to merge over any existing parameters of a schema (rather than |
|
| 750 |
+ clobbering everything). |
|
| 751 |
+* Merging URLs will now use the query string object from the relative URL (thus allowing custom query aggregators) |
|
| 752 |
+* Query strings are now parsed in a way that they do no convert empty keys with no value to have a dangling `=`. |
|
| 753 |
+ For example `foo&bar=baz` is now correctly parsed and recognized as `foo&bar=baz` rather than `foo=&bar=baz`. |
|
| 754 |
+* Now properly escaping the regular expression delimiter when matching Cookie domains. |
|
| 755 |
+* Network access is now disabled when loading XML documents |
|
| 756 |
+ |
|
| 757 |
+## 3.8.0 - 2013-12-05 |
|
| 758 |
+ |
|
| 759 |
+* Added the ability to define a POST name for a file |
|
| 760 |
+* JSON response parsing now properly walks additionalProperties |
|
| 761 |
+* cURL error code 18 is now retried automatically in the BackoffPlugin |
|
| 762 |
+* Fixed a cURL error when URLs contain fragments |
|
| 763 |
+* Fixed an issue in the BackoffPlugin retry event where it was trying to access all exceptions as if they were |
|
| 764 |
+ CurlExceptions |
|
| 765 |
+* CURLOPT_PROGRESS function fix for PHP 5.5 (69fcc1e) |
|
| 766 |
+* Added the ability for Guzzle to work with older versions of cURL that do not support `CURLOPT_TIMEOUT_MS` |
|
| 767 |
+* Fixed a bug that was encountered when parsing empty header parameters |
|
| 768 |
+* UriTemplate now has a `setRegex()` method to match the docs |
|
| 769 |
+* The `debug` request parameter now checks if it is truthy rather than if it exists |
|
| 770 |
+* Setting the `debug` request parameter to true shows verbose cURL output instead of using the LogPlugin |
|
| 771 |
+* Added the ability to combine URLs using strict RFC 3986 compliance |
|
| 772 |
+* Command objects can now return the validation errors encountered by the command |
|
| 773 |
+* Various fixes to cache revalidation (#437 and 29797e5) |
|
| 774 |
+* Various fixes to the AsyncPlugin |
|
| 775 |
+* Cleaned up build scripts |
|
| 776 |
+ |
|
| 777 |
+## 3.7.4 - 2013-10-02 |
|
| 778 |
+ |
|
| 779 |
+* Bug fix: 0 is now an allowed value in a description parameter that has a default value (#430) |
|
| 780 |
+* Bug fix: SchemaFormatter now returns an integer when formatting to a Unix timestamp |
|
| 781 |
+ (see https://github.com/aws/aws-sdk-php/issues/147) |
|
| 782 |
+* Bug fix: Cleaned up and fixed URL dot segment removal to properly resolve internal dots |
|
| 783 |
+* Minimum PHP version is now properly specified as 5.3.3 (up from 5.3.2) (#420) |
|
| 784 |
+* Updated the bundled cacert.pem (#419) |
|
| 785 |
+* OauthPlugin now supports adding authentication to headers or query string (#425) |
|
| 786 |
+ |
|
| 787 |
+## 3.7.3 - 2013-09-08 |
|
| 788 |
+ |
|
| 789 |
+* Added the ability to get the exception associated with a request/command when using `MultiTransferException` and |
|
| 790 |
+ `CommandTransferException`. |
|
| 791 |
+* Setting `additionalParameters` of a response to false is now honored when parsing responses with a service description |
|
| 792 |
+* Schemas are only injected into response models when explicitly configured. |
|
| 793 |
+* No longer guessing Content-Type based on the path of a request. Content-Type is now only guessed based on the path of |
|
| 794 |
+ an EntityBody. |
|
| 795 |
+* Bug fix: ChunkedIterator can now properly chunk a \Traversable as well as an \Iterator. |
|
| 796 |
+* Bug fix: FilterIterator now relies on `\Iterator` instead of `\Traversable`. |
|
| 797 |
+* Bug fix: Gracefully handling malformed responses in RequestMediator::writeResponseBody() |
|
| 798 |
+* Bug fix: Replaced call to canCache with canCacheRequest in the CallbackCanCacheStrategy of the CachePlugin |
|
| 799 |
+* Bug fix: Visiting XML attributes first before visiting XML children when serializing requests |
|
| 800 |
+* Bug fix: Properly parsing headers that contain commas contained in quotes |
|
| 801 |
+* Bug fix: mimetype guessing based on a filename is now case-insensitive |
|
| 802 |
+ |
|
| 803 |
+## 3.7.2 - 2013-08-02 |
|
| 804 |
+ |
|
| 805 |
+* Bug fix: Properly URL encoding paths when using the PHP-only version of the UriTemplate expander |
|
| 806 |
+ See https://github.com/guzzle/guzzle/issues/371 |
|
| 807 |
+* Bug fix: Cookie domains are now matched correctly according to RFC 6265 |
|
| 808 |
+ See https://github.com/guzzle/guzzle/issues/377 |
|
| 809 |
+* Bug fix: GET parameters are now used when calculating an OAuth signature |
|
| 810 |
+* Bug fix: Fixed an issue with cache revalidation where the If-None-Match header was being double quoted |
|
| 811 |
+* `Guzzle\Common\AbstractHasDispatcher::dispatch()` now returns the event that was dispatched |
|
| 812 |
+* `Guzzle\Http\QueryString::factory()` now guesses the most appropriate query aggregator to used based on the input. |
|
| 813 |
+ See https://github.com/guzzle/guzzle/issues/379 |
|
| 814 |
+* Added a way to add custom domain objects to service description parsing using the `operation.parse_class` event. See |
|
| 815 |
+ https://github.com/guzzle/guzzle/pull/380 |
|
| 816 |
+* cURL multi cleanup and optimizations |
|
| 817 |
+ |
|
| 818 |
+## 3.7.1 - 2013-07-05 |
|
| 819 |
+ |
|
| 820 |
+* Bug fix: Setting default options on a client now works |
|
| 821 |
+* Bug fix: Setting options on HEAD requests now works. See #352 |
|
| 822 |
+* Bug fix: Moving stream factory before send event to before building the stream. See #353 |
|
| 823 |
+* Bug fix: Cookies no longer match on IP addresses per RFC 6265 |
|
| 824 |
+* Bug fix: Correctly parsing header parameters that are in `<>` and quotes |
|
| 825 |
+* Added `cert` and `ssl_key` as request options |
|
| 826 |
+* `Host` header can now diverge from the host part of a URL if the header is set manually |
|
| 827 |
+* `Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor` was rewritten to change from using SimpleXML to XMLWriter |
|
| 828 |
+* OAuth parameters are only added via the plugin if they aren't already set |
|
| 829 |
+* Exceptions are now thrown when a URL cannot be parsed |
|
| 830 |
+* Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails |
|
| 831 |
+* Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin |
|
| 832 |
+ |
|
| 833 |
+## 3.7.0 - 2013-06-10 |
|
| 834 |
+ |
|
| 835 |
+* See UPGRADING.md for more information on how to upgrade. |
|
| 836 |
+* Requests now support the ability to specify an array of $options when creating a request to more easily modify a |
|
| 837 |
+ request. You can pass a 'request.options' configuration setting to a client to apply default request options to |
|
| 838 |
+ every request created by a client (e.g. default query string variables, headers, curl options, etc.). |
|
| 839 |
+* Added a static facade class that allows you to use Guzzle with static methods and mount the class to `\Guzzle`. |
|
| 840 |
+ See `Guzzle\Http\StaticClient::mount`. |
|
| 841 |
+* Added `command.request_options` to `Guzzle\Service\Command\AbstractCommand` to pass request options to requests |
|
| 842 |
+ created by a command (e.g. custom headers, query string variables, timeout settings, etc.). |
|
| 843 |
+* Stream size in `Guzzle\Stream\PhpStreamRequestFactory` will now be set if Content-Length is returned in the |
|
| 844 |
+ headers of a response |
|
| 845 |
+* Added `Guzzle\Common\Collection::setPath($path, $value)` to set a value into an array using a nested key |
|
| 846 |
+ (e.g. `$collection->setPath('foo/baz/bar', 'test'); echo $collection['foo']['bar']['bar'];`)
|
|
| 847 |
+* ServiceBuilders now support storing and retrieving arbitrary data |
|
| 848 |
+* CachePlugin can now purge all resources for a given URI |
|
| 849 |
+* CachePlugin can automatically purge matching cached items when a non-idempotent request is sent to a resource |
|
| 850 |
+* CachePlugin now uses the Vary header to determine if a resource is a cache hit |
|
| 851 |
+* `Guzzle\Http\Message\Response` now implements `\Serializable` |
|
| 852 |
+* Added `Guzzle\Cache\CacheAdapterFactory::fromCache()` to more easily create cache adapters |
|
| 853 |
+* `Guzzle\Service\ClientInterface::execute()` now accepts an array, single command, or Traversable |
|
| 854 |
+* Fixed a bug in `Guzzle\Http\Message\Header\Link::addLink()` |
|
| 855 |
+* Better handling of calculating the size of a stream in `Guzzle\Stream\Stream` using fstat() and caching the size |
|
| 856 |
+* `Guzzle\Common\Exception\ExceptionCollection` now creates a more readable exception message |
|
| 857 |
+* Fixing BC break: Added back the MonologLogAdapter implementation rather than extending from PsrLog so that older |
|
| 858 |
+ Symfony users can still use the old version of Monolog. |
|
| 859 |
+* Fixing BC break: Added the implementation back in for `Guzzle\Http\Message\AbstractMessage::getTokenizedHeader()`. |
|
| 860 |
+ Now triggering an E_USER_DEPRECATED warning when used. Use `$message->getHeader()->parseParams()`. |
|
| 861 |
+* Several performance improvements to `Guzzle\Common\Collection` |
|
| 862 |
+* Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`: |
|
| 863 |
+ createRequest, head, delete, put, patch, post, options, prepareRequest |
|
| 864 |
+* Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()` |
|
| 865 |
+* Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface` |
|
| 866 |
+* Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to |
|
| 867 |
+ `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a |
|
| 868 |
+ resource, string, or EntityBody into the $options parameter to specify the download location of the response. |
|
| 869 |
+* Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a |
|
| 870 |
+ default `array()` |
|
| 871 |
+* Added `Guzzle\Stream\StreamInterface::isRepeatable` |
|
| 872 |
+* Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use |
|
| 873 |
+ $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or
|
|
| 874 |
+ $client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))`.
|
|
| 875 |
+* Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use $client->getConfig()->getPath('request.options/headers')`.
|
|
| 876 |
+* Removed `Guzzle\Http\ClientInterface::expandTemplate()` |
|
| 877 |
+* Removed `Guzzle\Http\ClientInterface::setRequestFactory()` |
|
| 878 |
+* Removed `Guzzle\Http\ClientInterface::getCurlMulti()` |
|
| 879 |
+* Removed `Guzzle\Http\Message\RequestInterface::canCache` |
|
| 880 |
+* Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect` |
|
| 881 |
+* Removed `Guzzle\Http\Message\RequestInterface::isRedirect` |
|
| 882 |
+* Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods. |
|
| 883 |
+* You can now enable E_USER_DEPRECATED warnings to see if you are using a deprecated method by setting |
|
| 884 |
+ `Guzzle\Common\Version::$emitWarnings` to true. |
|
| 885 |
+* Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use |
|
| 886 |
+ `$request->getResponseBody()->isRepeatable()` instead. |
|
| 887 |
+* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use |
|
| 888 |
+ `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. |
|
| 889 |
+* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use |
|
| 890 |
+ `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. |
|
| 891 |
+* Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead. |
|
| 892 |
+* Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead. |
|
| 893 |
+* Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated |
|
| 894 |
+* Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand. |
|
| 895 |
+ These will work through Guzzle 4.0 |
|
| 896 |
+* Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use [request.options][params]. |
|
| 897 |
+* Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client. |
|
| 898 |
+* Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use $client->getConfig()->getPath('request.options/headers')`.
|
|
| 899 |
+* Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`.
|
|
| 900 |
+* Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8. |
|
| 901 |
+* Marked `Guzzle\Common\Collection::inject()` as deprecated. |
|
| 902 |
+* Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');`
|
|
| 903 |
+* CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a |
|
| 904 |
+ CacheStorageInterface. These two objects and interface will be removed in a future version. |
|
| 905 |
+* Always setting X-cache headers on cached responses |
|
| 906 |
+* Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin |
|
| 907 |
+* `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface |
|
| 908 |
+ $request, Response $response);` |
|
| 909 |
+* `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);` |
|
| 910 |
+* `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);` |
|
| 911 |
+* Added `CacheStorageInterface::purge($url)` |
|
| 912 |
+* `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin |
|
| 913 |
+ $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache, |
|
| 914 |
+ CanCacheStrategyInterface $canCache = null)` |
|
| 915 |
+* Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)` |
|
| 916 |
+ |
|
| 917 |
+## 3.6.0 - 2013-05-29 |
|
| 918 |
+ |
|
| 919 |
+* ServiceDescription now implements ToArrayInterface |
|
| 920 |
+* Added command.hidden_params to blacklist certain headers from being treated as additionalParameters |
|
| 921 |
+* Guzzle can now correctly parse incomplete URLs |
|
| 922 |
+* Mixed casing of headers are now forced to be a single consistent casing across all values for that header. |
|
| 923 |
+* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution |
|
| 924 |
+* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader(). |
|
| 925 |
+* Specific header implementations can be created for complex headers. When a message creates a header, it uses a |
|
| 926 |
+ HeaderFactory which can map specific headers to specific header classes. There is now a Link header and |
|
| 927 |
+ CacheControl header implementation. |
|
| 928 |
+* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate |
|
| 929 |
+* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti() |
|
| 930 |
+* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in |
|
| 931 |
+ Guzzle\Http\Curl\RequestMediator |
|
| 932 |
+* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string. |
|
| 933 |
+* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface |
|
| 934 |
+* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders() |
|
| 935 |
+* Removed Guzzle\Parser\ParserRegister::get(). Use getParser() |
|
| 936 |
+* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser(). |
|
| 937 |
+* All response header helper functions return a string rather than mixing Header objects and strings inconsistently |
|
| 938 |
+* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle |
|
| 939 |
+ directly via interfaces |
|
| 940 |
+* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist |
|
| 941 |
+ but are a no-op until removed. |
|
| 942 |
+* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a |
|
| 943 |
+ `Guzzle\Service\Command\ArrayCommandInterface`. |
|
| 944 |
+* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response |
|
| 945 |
+ on a request while the request is still being transferred |
|
| 946 |
+* The ability to case-insensitively search for header values |
|
| 947 |
+* Guzzle\Http\Message\Header::hasExactHeader |
|
| 948 |
+* Guzzle\Http\Message\Header::raw. Use getAll() |
|
| 949 |
+* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object |
|
| 950 |
+ instead. |
|
| 951 |
+* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess |
|
| 952 |
+* Added the ability to cast Model objects to a string to view debug information. |
|
| 953 |
+ |
|
| 954 |
+## 3.5.0 - 2013-05-13 |
|
| 955 |
+ |
|
| 956 |
+* Bug: Fixed a regression so that request responses are parsed only once per oncomplete event rather than multiple times |
|
| 957 |
+* Bug: Better cleanup of one-time events across the board (when an event is meant to fire once, it will now remove |
|
| 958 |
+ itself from the EventDispatcher) |
|
| 959 |
+* Bug: `Guzzle\Log\MessageFormatter` now properly writes "total_time" and "connect_time" values |
|
| 960 |
+* Bug: Cloning an EntityEnclosingRequest now clones the EntityBody too |
|
| 961 |
+* Bug: Fixed an undefined index error when parsing nested JSON responses with a sentAs parameter that reference a |
|
| 962 |
+ non-existent key |
|
| 963 |
+* Bug: All __call() method arguments are now required (helps with mocking frameworks) |
|
| 964 |
+* Deprecating Response::getRequest() and now using a shallow clone of a request object to remove a circular reference |
|
| 965 |
+ to help with refcount based garbage collection of resources created by sending a request |
|
| 966 |
+* Deprecating ZF1 cache and log adapters. These will be removed in the next major version. |
|
| 967 |
+* Deprecating `Response::getPreviousResponse()` (method signature still exists, but it's deprecated). Use the |
|
| 968 |
+ HistoryPlugin for a history. |
|
| 969 |
+* Added a `responseBody` alias for the `response_body` location |
|
| 970 |
+* Refactored internals to no longer rely on Response::getRequest() |
|
| 971 |
+* HistoryPlugin can now be cast to a string |
|
| 972 |
+* HistoryPlugin now logs transactions rather than requests and responses to more accurately keep track of the requests |
|
| 973 |
+ and responses that are sent over the wire |
|
| 974 |
+* Added `getEffectiveUrl()` and `getRedirectCount()` to Response objects |
|
| 975 |
+ |
|
| 976 |
+## 3.4.3 - 2013-04-30 |
|
| 977 |
+ |
|
| 978 |
+* Bug fix: Fixing bug introduced in 3.4.2 where redirect responses are duplicated on the final redirected response |
|
| 979 |
+* Added a check to re-extract the temp cacert bundle from the phar before sending each request |
|
| 980 |
+ |
|
| 981 |
+## 3.4.2 - 2013-04-29 |
|
| 982 |
+ |
|
| 983 |
+* Bug fix: Stream objects now work correctly with "a" and "a+" modes |
|
| 984 |
+* Bug fix: Removing `Transfer-Encoding: chunked` header when a Content-Length is present |
|
| 985 |
+* Bug fix: AsyncPlugin no longer forces HEAD requests |
|
| 986 |
+* Bug fix: DateTime timezones are now properly handled when using the service description schema formatter |
|
| 987 |
+* Bug fix: CachePlugin now properly handles stale-if-error directives when a request to the origin server fails |
|
| 988 |
+* Setting a response on a request will write to the custom request body from the response body if one is specified |
|
| 989 |
+* LogPlugin now writes to php://output when STDERR is undefined |
|
| 990 |
+* Added the ability to set multiple POST files for the same key in a single call |
|
| 991 |
+* application/x-www-form-urlencoded POSTs now use the utf-8 charset by default |
|
| 992 |
+* Added the ability to queue CurlExceptions to the MockPlugin |
|
| 993 |
+* Cleaned up how manual responses are queued on requests (removed "queued_response" and now using request.before_send) |
|
| 994 |
+* Configuration loading now allows remote files |
|
| 995 |
+ |
|
| 996 |
+## 3.4.1 - 2013-04-16 |
|
| 997 |
+ |
|
| 998 |
+* Large refactoring to how CurlMulti handles work. There is now a proxy that sits in front of a pool of CurlMulti |
|
| 999 |
+ handles. This greatly simplifies the implementation, fixes a couple bugs, and provides a small performance boost. |
|
| 1000 |
+* Exceptions are now properly grouped when sending requests in parallel |
|
| 1001 |
+* Redirects are now properly aggregated when a multi transaction fails |
|
| 1002 |
+* Redirects now set the response on the original object even in the event of a failure |
|
| 1003 |
+* Bug fix: Model names are now properly set even when using $refs |
|
| 1004 |
+* Added support for PHP 5.5's CurlFile to prevent warnings with the deprecated @ syntax |
|
| 1005 |
+* Added support for oauth_callback in OAuth signatures |
|
| 1006 |
+* Added support for oauth_verifier in OAuth signatures |
|
| 1007 |
+* Added support to attempt to retrieve a command first literally, then ucfirst, the with inflection |
|
| 1008 |
+ |
|
| 1009 |
+## 3.4.0 - 2013-04-11 |
|
| 1010 |
+ |
|
| 1011 |
+* Bug fix: URLs are now resolved correctly based on https://tools.ietf.org/html/rfc3986#section-5.2. #289 |
|
| 1012 |
+* Bug fix: Absolute URLs with a path in a service description will now properly override the base URL. #289 |
|
| 1013 |
+* Bug fix: Parsing a query string with a single PHP array value will now result in an array. #263 |
|
| 1014 |
+* Bug fix: Better normalization of the User-Agent header to prevent duplicate headers. #264. |
|
| 1015 |
+* Bug fix: Added `number` type to service descriptions. |
|
| 1016 |
+* Bug fix: empty parameters are removed from an OAuth signature |
|
| 1017 |
+* Bug fix: Revalidating a cache entry prefers the Last-Modified over the Date header |
|
| 1018 |
+* Bug fix: Fixed "array to string" error when validating a union of types in a service description |
|
| 1019 |
+* Bug fix: Removed code that attempted to determine the size of a stream when data is written to the stream |
|
| 1020 |
+* Bug fix: Not including an `oauth_token` if the value is null in the OauthPlugin. |
|
| 1021 |
+* Bug fix: Now correctly aggregating successful requests and failed requests in CurlMulti when a redirect occurs. |
|
| 1022 |
+* The new default CURLOPT_TIMEOUT setting has been increased to 150 seconds so that Guzzle works on poor connections. |
|
| 1023 |
+* Added a feature to EntityEnclosingRequest::setBody() that will automatically set the Content-Type of the request if |
|
| 1024 |
+ the Content-Type can be determined based on the entity body or the path of the request. |
|
| 1025 |
+* Added the ability to overwrite configuration settings in a client when grabbing a throwaway client from a builder. |
|
| 1026 |
+* Added support for a PSR-3 LogAdapter. |
|
| 1027 |
+* Added a `command.after_prepare` event |
|
| 1028 |
+* Added `oauth_callback` parameter to the OauthPlugin |
|
| 1029 |
+* Added the ability to create a custom stream class when using a stream factory |
|
| 1030 |
+* Added a CachingEntityBody decorator |
|
| 1031 |
+* Added support for `additionalParameters` in service descriptions to define how custom parameters are serialized. |
|
| 1032 |
+* The bundled SSL certificate is now provided in the phar file and extracted when running Guzzle from a phar. |
|
| 1033 |
+* You can now send any EntityEnclosingRequest with POST fields or POST files and cURL will handle creating bodies |
|
| 1034 |
+* POST requests using a custom entity body are now treated exactly like PUT requests but with a custom cURL method. This |
|
| 1035 |
+ means that the redirect behavior of POST requests with custom bodies will not be the same as POST requests that use |
|
| 1036 |
+ POST fields or files (the latter is only used when emulating a form POST in the browser). |
|
| 1037 |
+* Lots of cleanup to CurlHandle::factory and RequestFactory::createRequest |
|
| 1038 |
+ |
|
| 1039 |
+## 3.3.1 - 2013-03-10 |
|
| 1040 |
+ |
|
| 1041 |
+* Added the ability to create PHP streaming responses from HTTP requests |
|
| 1042 |
+* Bug fix: Running any filters when parsing response headers with service descriptions |
|
| 1043 |
+* Bug fix: OauthPlugin fixes to allow for multi-dimensional array signing, and sorting parameters before signing |
|
| 1044 |
+* Bug fix: Removed the adding of default empty arrays and false Booleans to responses in order to be consistent across |
|
| 1045 |
+ response location visitors. |
|
| 1046 |
+* Bug fix: Removed the possibility of creating configuration files with circular dependencies |
|
| 1047 |
+* RequestFactory::create() now uses the key of a POST file when setting the POST file name |
|
| 1048 |
+* Added xmlAllowEmpty to serialize an XML body even if no XML specific parameters are set |
|
| 1049 |
+ |
|
| 1050 |
+## 3.3.0 - 2013-03-03 |
|
| 1051 |
+ |
|
| 1052 |
+* A large number of performance optimizations have been made |
|
| 1053 |
+* Bug fix: Added 'wb' as a valid write mode for streams |
|
| 1054 |
+* Bug fix: `Guzzle\Http\Message\Response::json()` now allows scalar values to be returned |
|
| 1055 |
+* Bug fix: Fixed bug in `Guzzle\Http\Message\Response` where wrapping quotes were stripped from `getEtag()` |
|
| 1056 |
+* BC: Removed `Guzzle\Http\Utils` class |
|
| 1057 |
+* BC: Setting a service description on a client will no longer modify the client's command factories. |
|
| 1058 |
+* BC: Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using |
|
| 1059 |
+ the 'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io' |
|
| 1060 |
+* BC: `Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getSteamType()` are no longer converted to |
|
| 1061 |
+ lowercase |
|
| 1062 |
+* Operation parameter objects are now lazy loaded internally |
|
| 1063 |
+* Added ErrorResponsePlugin that can throw errors for responses defined in service description operations' errorResponses |
|
| 1064 |
+* Added support for instantiating responseType=class responseClass classes. Classes must implement |
|
| 1065 |
+ `Guzzle\Service\Command\ResponseClassInterface` |
|
| 1066 |
+* Added support for additionalProperties for top-level parameters in responseType=model responseClasses. These |
|
| 1067 |
+ additional properties also support locations and can be used to parse JSON responses where the outermost part of the |
|
| 1068 |
+ JSON is an array |
|
| 1069 |
+* Added support for nested renaming of JSON models (rename sentAs to name) |
|
| 1070 |
+* CachePlugin |
|
| 1071 |
+ * Added support for stale-if-error so that the CachePlugin can now serve stale content from the cache on error |
|
| 1072 |
+ * Debug headers can now added to cached response in the CachePlugin |
|
| 1073 |
+ |
|
| 1074 |
+## 3.2.0 - 2013-02-14 |
|
| 1075 |
+ |
|
| 1076 |
+* CurlMulti is no longer reused globally. A new multi object is created per-client. This helps to isolate clients. |
|
| 1077 |
+* URLs with no path no longer contain a "/" by default |
|
| 1078 |
+* Guzzle\Http\QueryString does no longer manages the leading "?". This is now handled in Guzzle\Http\Url. |
|
| 1079 |
+* BadResponseException no longer includes the full request and response message |
|
| 1080 |
+* Adding setData() to Guzzle\Service\Description\ServiceDescriptionInterface |
|
| 1081 |
+* Adding getResponseBody() to Guzzle\Http\Message\RequestInterface |
|
| 1082 |
+* Various updates to classes to use ServiceDescriptionInterface type hints rather than ServiceDescription |
|
| 1083 |
+* Header values can now be normalized into distinct values when multiple headers are combined with a comma separated list |
|
| 1084 |
+* xmlEncoding can now be customized for the XML declaration of a XML service description operation |
|
| 1085 |
+* Guzzle\Http\QueryString now uses Guzzle\Http\QueryAggregator\QueryAggregatorInterface objects to add custom value |
|
| 1086 |
+ aggregation and no longer uses callbacks |
|
| 1087 |
+* The URL encoding implementation of Guzzle\Http\QueryString can now be customized |
|
| 1088 |
+* Bug fix: Filters were not always invoked for array service description parameters |
|
| 1089 |
+* Bug fix: Redirects now use a target response body rather than a temporary response body |
|
| 1090 |
+* Bug fix: The default exponential backoff BackoffPlugin was not giving when the request threshold was exceeded |
|
| 1091 |
+* Bug fix: Guzzle now takes the first found value when grabbing Cache-Control directives |
|
| 1092 |
+ |
|
| 1093 |
+## 3.1.2 - 2013-01-27 |
|
| 1094 |
+ |
|
| 1095 |
+* Refactored how operation responses are parsed. Visitors now include a before() method responsible for parsing the |
|
| 1096 |
+ response body. For example, the XmlVisitor now parses the XML response into an array in the before() method. |
|
| 1097 |
+* Fixed an issue where cURL would not automatically decompress responses when the Accept-Encoding header was sent |
|
| 1098 |
+* CURLOPT_SSL_VERIFYHOST is never set to 1 because it is deprecated (see 5e0ff2ef20f839e19d1eeb298f90ba3598784444) |
|
| 1099 |
+* Fixed a bug where redirect responses were not chained correctly using getPreviousResponse() |
|
| 1100 |
+* Setting default headers on a client after setting the user-agent will not erase the user-agent setting |
|
| 1101 |
+ |
|
| 1102 |
+## 3.1.1 - 2013-01-20 |
|
| 1103 |
+ |
|
| 1104 |
+* Adding wildcard support to Guzzle\Common\Collection::getPath() |
|
| 1105 |
+* Adding alias support to ServiceBuilder configs |
|
| 1106 |
+* Adding Guzzle\Service\Resource\CompositeResourceIteratorFactory and cleaning up factory interface |
|
| 1107 |
+ |
|
| 1108 |
+## 3.1.0 - 2013-01-12 |
|
| 1109 |
+ |
|
| 1110 |
+* BC: CurlException now extends from RequestException rather than BadResponseException |
|
| 1111 |
+* BC: Renamed Guzzle\Plugin\Cache\CanCacheStrategyInterface::canCache() to canCacheRequest() and added CanCacheResponse() |
|
| 1112 |
+* Added getData to ServiceDescriptionInterface |
|
| 1113 |
+* Added context array to RequestInterface::setState() |
|
| 1114 |
+* Bug: Removing hard dependency on the BackoffPlugin from Guzzle\Http |
|
| 1115 |
+* Bug: Adding required content-type when JSON request visitor adds JSON to a command |
|
| 1116 |
+* Bug: Fixing the serialization of a service description with custom data |
|
| 1117 |
+* Made it easier to deal with exceptions thrown when transferring commands or requests in parallel by providing |
|
| 1118 |
+ an array of successful and failed responses |
|
| 1119 |
+* Moved getPath from Guzzle\Service\Resource\Model to Guzzle\Common\Collection |
|
| 1120 |
+* Added Guzzle\Http\IoEmittingEntityBody |
|
| 1121 |
+* Moved command filtration from validators to location visitors |
|
| 1122 |
+* Added `extends` attributes to service description parameters |
|
| 1123 |
+* Added getModels to ServiceDescriptionInterface |
|
| 1124 |
+ |
|
| 1125 |
+## 3.0.7 - 2012-12-19 |
|
| 1126 |
+ |
|
| 1127 |
+* Fixing phar detection when forcing a cacert to system if null or true |
|
| 1128 |
+* Allowing filename to be passed to `Guzzle\Http\Message\Request::setResponseBody()` |
|
| 1129 |
+* Cleaning up `Guzzle\Common\Collection::inject` method |
|
| 1130 |
+* Adding a response_body location to service descriptions |
|
| 1131 |
+ |
|
| 1132 |
+## 3.0.6 - 2012-12-09 |
|
| 1133 |
+ |
|
| 1134 |
+* CurlMulti performance improvements |
|
| 1135 |
+* Adding setErrorResponses() to Operation |
|
| 1136 |
+* composer.json tweaks |
|
| 1137 |
+ |
|
| 1138 |
+## 3.0.5 - 2012-11-18 |
|
| 1139 |
+ |
|
| 1140 |
+* Bug: Fixing an infinite recursion bug caused from revalidating with the CachePlugin |
|
| 1141 |
+* Bug: Response body can now be a string containing "0" |
|
| 1142 |
+* Bug: Using Guzzle inside of a phar uses system by default but now allows for a custom cacert |
|
| 1143 |
+* Bug: QueryString::fromString now properly parses query string parameters that contain equal signs |
|
| 1144 |
+* Added support for XML attributes in service description responses |
|
| 1145 |
+* DefaultRequestSerializer now supports array URI parameter values for URI template expansion |
|
| 1146 |
+* Added better mimetype guessing to requests and post files |
|
| 1147 |
+ |
|
| 1148 |
+## 3.0.4 - 2012-11-11 |
|
| 1149 |
+ |
|
| 1150 |
+* Bug: Fixed a bug when adding multiple cookies to a request to use the correct glue value |
|
| 1151 |
+* Bug: Cookies can now be added that have a name, domain, or value set to "0" |
|
| 1152 |
+* Bug: Using the system cacert bundle when using the Phar |
|
| 1153 |
+* Added json and xml methods to Response to make it easier to parse JSON and XML response data into data structures |
|
| 1154 |
+* Enhanced cookie jar de-duplication |
|
| 1155 |
+* Added the ability to enable strict cookie jars that throw exceptions when invalid cookies are added |
|
| 1156 |
+* Added setStream to StreamInterface to actually make it possible to implement custom rewind behavior for entity bodies |
|
| 1157 |
+* Added the ability to create any sort of hash for a stream rather than just an MD5 hash |
|
| 1158 |
+ |
|
| 1159 |
+## 3.0.3 - 2012-11-04 |
|
| 1160 |
+ |
|
| 1161 |
+* Implementing redirects in PHP rather than cURL |
|
| 1162 |
+* Added PECL URI template extension and using as default parser if available |
|
| 1163 |
+* Bug: Fixed Content-Length parsing of Response factory |
|
| 1164 |
+* Adding rewind() method to entity bodies and streams. Allows for custom rewinding of non-repeatable streams. |
|
| 1165 |
+* Adding ToArrayInterface throughout library |
|
| 1166 |
+* Fixing OauthPlugin to create unique nonce values per request |
|
| 1167 |
+ |
|
| 1168 |
+## 3.0.2 - 2012-10-25 |
|
| 1169 |
+ |
|
| 1170 |
+* Magic methods are enabled by default on clients |
|
| 1171 |
+* Magic methods return the result of a command |
|
| 1172 |
+* Service clients no longer require a base_url option in the factory |
|
| 1173 |
+* Bug: Fixed an issue with URI templates where null template variables were being expanded |
|
| 1174 |
+ |
|
| 1175 |
+## 3.0.1 - 2012-10-22 |
|
| 1176 |
+ |
|
| 1177 |
+* Models can now be used like regular collection objects by calling filter, map, etc. |
|
| 1178 |
+* Models no longer require a Parameter structure or initial data in the constructor |
|
| 1179 |
+* Added a custom AppendIterator to get around a PHP bug with the `\AppendIterator` |
|
| 1180 |
+ |
|
| 1181 |
+## 3.0.0 - 2012-10-15 |
|
| 1182 |
+ |
|
| 1183 |
+* Rewrote service description format to be based on Swagger |
|
| 1184 |
+ * Now based on JSON schema |
|
| 1185 |
+ * Added nested input structures and nested response models |
|
| 1186 |
+ * Support for JSON and XML input and output models |
|
| 1187 |
+ * Renamed `commands` to `operations` |
|
| 1188 |
+ * Removed dot class notation |
|
| 1189 |
+ * Removed custom types |
|
| 1190 |
+* Broke the project into smaller top-level namespaces to be more component friendly |
|
| 1191 |
+* Removed support for XML configs and descriptions. Use arrays or JSON files. |
|
| 1192 |
+* Removed the Validation component and Inspector |
|
| 1193 |
+* Moved all cookie code to Guzzle\Plugin\Cookie |
|
| 1194 |
+* Magic methods on a Guzzle\Service\Client now return the command un-executed. |
|
| 1195 |
+* Calling getResult() or getResponse() on a command will lazily execute the command if needed. |
|
| 1196 |
+* Now shipping with cURL's CA certs and using it by default |
|
| 1197 |
+* Added previousResponse() method to response objects |
|
| 1198 |
+* No longer sending Accept and Accept-Encoding headers on every request |
|
| 1199 |
+* Only sending an Expect header by default when a payload is greater than 1MB |
|
| 1200 |
+* Added/moved client options: |
|
| 1201 |
+ * curl.blacklist to curl.option.blacklist |
|
| 1202 |
+ * Added ssl.certificate_authority |
|
| 1203 |
+* Added a Guzzle\Iterator component |
|
| 1204 |
+* Moved plugins from Guzzle\Http\Plugin to Guzzle\Plugin |
|
| 1205 |
+* Added a more robust backoff retry strategy (replaced the ExponentialBackoffPlugin) |
|
| 1206 |
+* Added a more robust caching plugin |
|
| 1207 |
+* Added setBody to response objects |
|
| 1208 |
+* Updating LogPlugin to use a more flexible MessageFormatter |
|
| 1209 |
+* Added a completely revamped build process |
|
| 1210 |
+* Cleaning up Collection class and removing default values from the get method |
|
| 1211 |
+* Fixed ZF2 cache adapters |
|
| 1212 |
+ |
|
| 1213 |
+## 2.8.8 - 2012-10-15 |
|
| 1214 |
+ |
|
| 1215 |
+* Bug: Fixed a cookie issue that caused dot prefixed domains to not match where popular browsers did |
|
| 1216 |
+ |
|
| 1217 |
+## 2.8.7 - 2012-09-30 |
|
| 1218 |
+ |
|
| 1219 |
+* Bug: Fixed config file aliases for JSON includes |
|
| 1220 |
+* Bug: Fixed cookie bug on a request object by using CookieParser to parse cookies on requests |
|
| 1221 |
+* Bug: Removing the path to a file when sending a Content-Disposition header on a POST upload |
|
| 1222 |
+* Bug: Hardening request and response parsing to account for missing parts |
|
| 1223 |
+* Bug: Fixed PEAR packaging |
|
| 1224 |
+* Bug: Fixed Request::getInfo |
|
| 1225 |
+* Bug: Fixed cases where CURLM_CALL_MULTI_PERFORM return codes were causing curl transactions to fail |
|
| 1226 |
+* Adding the ability for the namespace Iterator factory to look in multiple directories |
|
| 1227 |
+* Added more getters/setters/removers from service descriptions |
|
| 1228 |
+* Added the ability to remove POST fields from OAuth signatures |
|
| 1229 |
+* OAuth plugin now supports 2-legged OAuth |
|
| 1230 |
+ |
|
| 1231 |
+## 2.8.6 - 2012-09-05 |
|
| 1232 |
+ |
|
| 1233 |
+* Added the ability to modify and build service descriptions |
|
| 1234 |
+* Added the use of visitors to apply parameters to locations in service descriptions using the dynamic command |
|
| 1235 |
+* Added a `json` parameter location |
|
| 1236 |
+* Now allowing dot notation for classes in the CacheAdapterFactory |
|
| 1237 |
+* Using the union of two arrays rather than an array_merge when extending service builder services and service params |
|
| 1238 |
+* Ensuring that a service is a string before doing strpos() checks on it when substituting services for references |
|
| 1239 |
+ in service builder config files. |
|
| 1240 |
+* Services defined in two different config files that include one another will by default replace the previously |
|
| 1241 |
+ defined service, but you can now create services that extend themselves and merge their settings over the previous |
|
| 1242 |
+* The JsonLoader now supports aliasing filenames with different filenames. This allows you to alias something like |
|
| 1243 |
+ '_default' with a default JSON configuration file. |
|
| 1244 |
+ |
|
| 1245 |
+## 2.8.5 - 2012-08-29 |
|
| 1246 |
+ |
|
| 1247 |
+* Bug: Suppressed empty arrays from URI templates |
|
| 1248 |
+* Bug: Added the missing $options argument from ServiceDescription::factory to enable caching |
|
| 1249 |
+* Added support for HTTP responses that do not contain a reason phrase in the start-line |
|
| 1250 |
+* AbstractCommand commands are now invokable |
|
| 1251 |
+* Added a way to get the data used when signing an Oauth request before a request is sent |
|
| 1252 |
+ |
|
| 1253 |
+## 2.8.4 - 2012-08-15 |
|
| 1254 |
+ |
|
| 1255 |
+* Bug: Custom delay time calculations are no longer ignored in the ExponentialBackoffPlugin |
|
| 1256 |
+* Added the ability to transfer entity bodies as a string rather than streamed. This gets around curl error 65. Set `body_as_string` in a request's curl options to enable. |
|
| 1257 |
+* Added a StreamInterface, EntityBodyInterface, and added ftell() to Guzzle\Common\Stream |
|
| 1258 |
+* Added an AbstractEntityBodyDecorator and a ReadLimitEntityBody decorator to transfer only a subset of a decorated stream |
|
| 1259 |
+* Stream and EntityBody objects will now return the file position to the previous position after a read required operation (e.g. getContentMd5()) |
|
| 1260 |
+* Added additional response status codes |
|
| 1261 |
+* Removed SSL information from the default User-Agent header |
|
| 1262 |
+* DELETE requests can now send an entity body |
|
| 1263 |
+* Added an EventDispatcher to the ExponentialBackoffPlugin and added an ExponentialBackoffLogger to log backoff retries |
|
| 1264 |
+* Added the ability of the MockPlugin to consume mocked request bodies |
|
| 1265 |
+* LogPlugin now exposes request and response objects in the extras array |
|
| 1266 |
+ |
|
| 1267 |
+## 2.8.3 - 2012-07-30 |
|
| 1268 |
+ |
|
| 1269 |
+* Bug: Fixed a case where empty POST requests were sent as GET requests |
|
| 1270 |
+* Bug: Fixed a bug in ExponentialBackoffPlugin that caused fatal errors when retrying an EntityEnclosingRequest that does not have a body |
|
| 1271 |
+* Bug: Setting the response body of a request to null after completing a request, not when setting the state of a request to new |
|
| 1272 |
+* Added multiple inheritance to service description commands |
|
| 1273 |
+* Added an ApiCommandInterface and added `getParamNames()` and `hasParam()` |
|
| 1274 |
+* Removed the default 2mb size cutoff from the Md5ValidatorPlugin so that it now defaults to validating everything |
|
| 1275 |
+* Changed CurlMulti::perform to pass a smaller timeout to CurlMulti::executeHandles |
|
| 1276 |
+ |
|
| 1277 |
+## 2.8.2 - 2012-07-24 |
|
| 1278 |
+ |
|
| 1279 |
+* Bug: Query string values set to 0 are no longer dropped from the query string |
|
| 1280 |
+* Bug: A Collection object is no longer created each time a call is made to `Guzzle\Service\Command\AbstractCommand::getRequestHeaders()` |
|
| 1281 |
+* Bug: `+` is now treated as an encoded space when parsing query strings |
|
| 1282 |
+* QueryString and Collection performance improvements |
|
| 1283 |
+* Allowing dot notation for class paths in filters attribute of a service descriptions |
|
| 1284 |
+ |
|
| 1285 |
+## 2.8.1 - 2012-07-16 |
|
| 1286 |
+ |
|
| 1287 |
+* Loosening Event Dispatcher dependency |
|
| 1288 |
+* POST redirects can now be customized using CURLOPT_POSTREDIR |
|
| 1289 |
+ |
|
| 1290 |
+## 2.8.0 - 2012-07-15 |
|
| 1291 |
+ |
|
| 1292 |
+* BC: Guzzle\Http\Query |
|
| 1293 |
+ * Query strings with empty variables will always show an equal sign unless the variable is set to QueryString::BLANK (e.g. ?acl= vs ?acl) |
|
| 1294 |
+ * Changed isEncodingValues() and isEncodingFields() to isUrlEncoding() |
|
| 1295 |
+ * Changed setEncodeValues(bool) and setEncodeFields(bool) to useUrlEncoding(bool) |
|
| 1296 |
+ * Changed the aggregation functions of QueryString to be static methods |
|
| 1297 |
+ * Can now use fromString() with querystrings that have a leading ? |
|
| 1298 |
+* cURL configuration values can be specified in service descriptions using `curl.` prefixed parameters |
|
| 1299 |
+* Content-Length is set to 0 before emitting the request.before_send event when sending an empty request body |
|
| 1300 |
+* Cookies are no longer URL decoded by default |
|
| 1301 |
+* Bug: URI template variables set to null are no longer expanded |
|
| 1302 |
+ |
|
| 1303 |
+## 2.7.2 - 2012-07-02 |
|
| 1304 |
+ |
|
| 1305 |
+* BC: Moving things to get ready for subtree splits. Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser. |
|
| 1306 |
+* BC: Removing Guzzle\Common\Batch\Batch::count() and replacing it with isEmpty() |
|
| 1307 |
+* CachePlugin now allows for a custom request parameter function to check if a request can be cached |
|
| 1308 |
+* Bug fix: CachePlugin now only caches GET and HEAD requests by default |
|
| 1309 |
+* Bug fix: Using header glue when transferring headers over the wire |
|
| 1310 |
+* Allowing deeply nested arrays for composite variables in URI templates |
|
| 1311 |
+* Batch divisors can now return iterators or arrays |
|
| 1312 |
+ |
|
| 1313 |
+## 2.7.1 - 2012-06-26 |
|
| 1314 |
+ |
|
| 1315 |
+* Minor patch to update version number in UA string |
|
| 1316 |
+* Updating build process |
|
| 1317 |
+ |
|
| 1318 |
+## 2.7.0 - 2012-06-25 |
|
| 1319 |
+ |
|
| 1320 |
+* BC: Inflection classes moved to Guzzle\Inflection. No longer static methods. Can now inject custom inflectors into classes. |
|
| 1321 |
+* BC: Removed magic setX methods from commands |
|
| 1322 |
+* BC: Magic methods mapped to service description commands are now inflected in the command factory rather than the client __call() method |
|
| 1323 |
+* Verbose cURL options are no longer enabled by default. Set curl.debug to true on a client to enable. |
|
| 1324 |
+* Bug: Now allowing colons in a response start-line (e.g. HTTP/1.1 503 Service Unavailable: Back-end server is at capacity) |
|
| 1325 |
+* Guzzle\Service\Resource\ResourceIteratorApplyBatched now internally uses the Guzzle\Common\Batch namespace |
|
| 1326 |
+* Added Guzzle\Service\Plugin namespace and a PluginCollectionPlugin |
|
| 1327 |
+* Added the ability to set POST fields and files in a service description |
|
| 1328 |
+* Guzzle\Http\EntityBody::factory() now accepts objects with a __toString() method |
|
| 1329 |
+* Adding a command.before_prepare event to clients |
|
| 1330 |
+* Added BatchClosureTransfer and BatchClosureDivisor |
|
| 1331 |
+* BatchTransferException now includes references to the batch divisor and transfer strategies |
|
| 1332 |
+* Fixed some tests so that they pass more reliably |
|
| 1333 |
+* Added Guzzle\Common\Log\ArrayLogAdapter |
|
| 1334 |
+ |
|
| 1335 |
+## 2.6.6 - 2012-06-10 |
|
| 1336 |
+ |
|
| 1337 |
+* BC: Removing Guzzle\Http\Plugin\BatchQueuePlugin |
|
| 1338 |
+* BC: Removing Guzzle\Service\Command\CommandSet |
|
| 1339 |
+* Adding generic batching system (replaces the batch queue plugin and command set) |
|
| 1340 |
+* Updating ZF cache and log adapters and now using ZF's composer repository |
|
| 1341 |
+* Bug: Setting the name of each ApiParam when creating through an ApiCommand |
|
| 1342 |
+* Adding result_type, result_doc, deprecated, and doc_url to service descriptions |
|
| 1343 |
+* Bug: Changed the default cookie header casing back to 'Cookie' |
|
| 1344 |
+ |
|
| 1345 |
+## 2.6.5 - 2012-06-03 |
|
| 1346 |
+ |
|
| 1347 |
+* BC: Renaming Guzzle\Http\Message\RequestInterface::getResourceUri() to getResource() |
|
| 1348 |
+* BC: Removing unused AUTH_BASIC and AUTH_DIGEST constants from |
|
| 1349 |
+* BC: Guzzle\Http\Cookie is now used to manage Set-Cookie data, not Cookie data |
|
| 1350 |
+* BC: Renaming methods in the CookieJarInterface |
|
| 1351 |
+* Moving almost all cookie logic out of the CookiePlugin and into the Cookie or CookieJar implementations |
|
| 1352 |
+* Making the default glue for HTTP headers ';' instead of ',' |
|
| 1353 |
+* Adding a removeValue to Guzzle\Http\Message\Header |
|
| 1354 |
+* Adding getCookies() to request interface. |
|
| 1355 |
+* Making it easier to add event subscribers to HasDispatcherInterface classes. Can now directly call addSubscriber() |
|
| 1356 |
+ |
|
| 1357 |
+## 2.6.4 - 2012-05-30 |
|
| 1358 |
+ |
|
| 1359 |
+* BC: Cleaning up how POST files are stored in EntityEnclosingRequest objects. Adding PostFile class. |
|
| 1360 |
+* BC: Moving ApiCommand specific functionality from the Inspector and on to the ApiCommand |
|
| 1361 |
+* Bug: Fixing magic method command calls on clients |
|
| 1362 |
+* Bug: Email constraint only validates strings |
|
| 1363 |
+* Bug: Aggregate POST fields when POST files are present in curl handle |
|
| 1364 |
+* Bug: Fixing default User-Agent header |
|
| 1365 |
+* Bug: Only appending or prepending parameters in commands if they are specified |
|
| 1366 |
+* Bug: Not requiring response reason phrases or status codes to match a predefined list of codes |
|
| 1367 |
+* Allowing the use of dot notation for class namespaces when using instance_of constraint |
|
| 1368 |
+* Added any_match validation constraint |
|
| 1369 |
+* Added an AsyncPlugin |
|
| 1370 |
+* Passing request object to the calculateWait method of the ExponentialBackoffPlugin |
|
| 1371 |
+* Allowing the result of a command object to be changed |
|
| 1372 |
+* Parsing location and type sub values when instantiating a service description rather than over and over at runtime |
|
| 1373 |
+ |
|
| 1374 |
+## 2.6.3 - 2012-05-23 |
|
| 1375 |
+ |
|
| 1376 |
+* [BC] Guzzle\Common\FromConfigInterface no longer requires any config options. |
|
| 1377 |
+* [BC] Refactoring how POST files are stored on an EntityEnclosingRequest. They are now separate from POST fields. |
|
| 1378 |
+* You can now use an array of data when creating PUT request bodies in the request factory. |
|
| 1379 |
+* Removing the requirement that HTTPS requests needed a Cache-Control: public directive to be cacheable. |
|
| 1380 |
+* [Http] Adding support for Content-Type in multipart POST uploads per upload |
|
| 1381 |
+* [Http] Added support for uploading multiple files using the same name (foo[0], foo[1]) |
|
| 1382 |
+* Adding more POST data operations for easier manipulation of POST data. |
|
| 1383 |
+* You can now set empty POST fields. |
|
| 1384 |
+* The body of a request is only shown on EntityEnclosingRequest objects that do not use POST files. |
|
| 1385 |
+* Split the Guzzle\Service\Inspector::validateConfig method into two methods. One to initialize when a command is created, and one to validate. |
|
| 1386 |
+* CS updates |
|
| 1387 |
+ |
|
| 1388 |
+## 2.6.2 - 2012-05-19 |
|
| 1389 |
+ |
|
| 1390 |
+* [Http] Better handling of nested scope requests in CurlMulti. Requests are now always prepares in the send() method rather than the addRequest() method. |
|
| 1391 |
+ |
|
| 1392 |
+## 2.6.1 - 2012-05-19 |
|
| 1393 |
+ |
|
| 1394 |
+* [BC] Removing 'path' support in service descriptions. Use 'uri'. |
|
| 1395 |
+* [BC] Guzzle\Service\Inspector::parseDocBlock is now protected. Adding getApiParamsForClass() with cache. |
|
| 1396 |
+* [BC] Removing Guzzle\Common\NullObject. Use https://github.com/mtdowling/NullObject if you need it. |
|
| 1397 |
+* [BC] Removing Guzzle\Common\XmlElement. |
|
| 1398 |
+* All commands, both dynamic and concrete, have ApiCommand objects. |
|
| 1399 |
+* Adding a fix for CurlMulti so that if all of the connections encounter some sort of curl error, then the loop exits. |
|
| 1400 |
+* Adding checks to EntityEnclosingRequest so that empty POST files and fields are ignored. |
|
| 1401 |
+* Making the method signature of Guzzle\Service\Builder\ServiceBuilder::factory more flexible. |
|
| 1402 |
+ |
|
| 1403 |
+## 2.6.0 - 2012-05-15 |
|
| 1404 |
+ |
|
| 1405 |
+* [BC] Moving Guzzle\Service\Builder to Guzzle\Service\Builder\ServiceBuilder |
|
| 1406 |
+* [BC] Executing a Command returns the result of the command rather than the command |
|
| 1407 |
+* [BC] Moving all HTTP parsing logic to Guzzle\Http\Parsers. Allows for faster C implementations if needed. |
|
| 1408 |
+* [BC] Changing the Guzzle\Http\Message\Response::setProtocol() method to accept a protocol and version in separate args. |
|
| 1409 |
+* [BC] Moving ResourceIterator* to Guzzle\Service\Resource |
|
| 1410 |
+* [BC] Completely refactored ResourceIterators to iterate over a cloned command object |
|
| 1411 |
+* [BC] Moved Guzzle\Http\UriTemplate to Guzzle\Http\Parser\UriTemplate\UriTemplate |
|
| 1412 |
+* [BC] Guzzle\Guzzle is now deprecated |
|
| 1413 |
+* Moving Guzzle\Common\Guzzle::inject to Guzzle\Common\Collection::inject |
|
| 1414 |
+* Adding Guzzle\Version class to give version information about Guzzle |
|
| 1415 |
+* Adding Guzzle\Http\Utils class to provide getDefaultUserAgent() and getHttpDate() |
|
| 1416 |
+* Adding Guzzle\Curl\CurlVersion to manage caching curl_version() data |
|
| 1417 |
+* ServiceDescription and ServiceBuilder are now cacheable using similar configs |
|
| 1418 |
+* Changing the format of XML and JSON service builder configs. Backwards compatible. |
|
| 1419 |
+* Cleaned up Cookie parsing |
|
| 1420 |
+* Trimming the default Guzzle User-Agent header |
|
| 1421 |
+* Adding a setOnComplete() method to Commands that is called when a command completes |
|
| 1422 |
+* Keeping track of requests that were mocked in the MockPlugin |
|
| 1423 |
+* Fixed a caching bug in the CacheAdapterFactory |
|
| 1424 |
+* Inspector objects can be injected into a Command object |
|
| 1425 |
+* Refactoring a lot of code and tests to be case insensitive when dealing with headers |
|
| 1426 |
+* Adding Guzzle\Http\Message\HeaderComparison for easy comparison of HTTP headers using a DSL |
|
| 1427 |
+* Adding the ability to set global option overrides to service builder configs |
|
| 1428 |
+* Adding the ability to include other service builder config files from within XML and JSON files |
|
| 1429 |
+* Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method. |
|
| 1430 |
+ |
|
| 1431 |
+## 2.5.0 - 2012-05-08 |
|
| 1432 |
+ |
|
| 1433 |
+* Major performance improvements |
|
| 1434 |
+* [BC] Simplifying Guzzle\Common\Collection. Please check to see if you are using features that are now deprecated. |
|
| 1435 |
+* [BC] Using a custom validation system that allows a flyweight implementation for much faster validation. No longer using Symfony2 Validation component. |
|
| 1436 |
+* [BC] No longer supporting "{{ }}" for injecting into command or UriTemplates. Use "{}"
|
|
| 1437 |
+* Added the ability to passed parameters to all requests created by a client |
|
| 1438 |
+* Added callback functionality to the ExponentialBackoffPlugin |
|
| 1439 |
+* Using microtime in ExponentialBackoffPlugin to allow more granular backoff strategies. |
|
| 1440 |
+* Rewinding request stream bodies when retrying requests |
|
| 1441 |
+* Exception is thrown when JSON response body cannot be decoded |
|
| 1442 |
+* Added configurable magic method calls to clients and commands. This is off by default. |
|
| 1443 |
+* Fixed a defect that added a hash to every parsed URL part |
|
| 1444 |
+* Fixed duplicate none generation for OauthPlugin. |
|
| 1445 |
+* Emitting an event each time a client is generated by a ServiceBuilder |
|
| 1446 |
+* Using an ApiParams object instead of a Collection for parameters of an ApiCommand |
|
| 1447 |
+* cache.* request parameters should be renamed to params.cache.* |
|
| 1448 |
+* Added the ability to set arbitrary curl options on requests (disable_wire, progress, etc.). See CurlHandle. |
|
| 1449 |
+* Added the ability to disable type validation of service descriptions |
|
| 1450 |
+* ServiceDescriptions and ServiceBuilders are now Serializable |