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