~ballot/wordpress/openstack-objectstorage

« back to all changes in this revision

Viewing changes to vendor/guzzlehttp/guzzle/CHANGELOG.md

  • Committer: Benjamin Allot
  • Date: 2020-07-02 16:31:38 UTC
  • Revision ID: benjamin.allot@canonical.com-20200702163138-qyk6njanak5uw2pg
Revert to revno 3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# CHANGELOG
2
 
 
3
 
## 5.3.1 - 2016-07-18
4
 
 
5
 
* Address HTTP_PROXY security vulnerability, CVE-2016-5385:
6
 
  https://httpoxy.org/
7
 
* Event name fix: https://github.com/guzzle/guzzle/commit/fcae91ff31de41e312fe113ec3acbcda31b2622e
8
 
* Response header case sensitivity fix: https://github.com/guzzle/guzzle/commit/043eeadf20ee40ddc6712faee4d3957a91f2b041
9
 
 
10
 
## 5.3.0 - 2015-05-19
11
 
 
12
 
* Mock now supports `save_to`
13
 
* Marked `AbstractRequestEvent::getTransaction()` as public.
14
 
* Fixed a bug in which multiple headers using different casing would overwrite
15
 
  previous headers in the associative array.
16
 
* Added `Utils::getDefaultHandler()`
17
 
* Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated.
18
 
* URL scheme is now always lowercased.
19
 
 
20
 
## 5.2.0 - 2015-01-27
21
 
 
22
 
* Added `AppliesHeadersInterface` to make applying headers to a request based
23
 
  on the body more generic and not specific to `PostBodyInterface`.
24
 
* Reduced the number of stack frames needed to send requests.
25
 
* Nested futures are now resolved in the client rather than the RequestFsm
26
 
* Finishing state transitions is now handled in the RequestFsm rather than the
27
 
  RingBridge.
28
 
* Added a guard in the Pool class to not use recursion for request retries.
29
 
 
30
 
## 5.1.0 - 2014-12-19
31
 
 
32
 
* Pool class no longer uses recursion when a request is intercepted.
33
 
* The size of a Pool can now be dynamically adjusted using a callback.
34
 
  See https://github.com/guzzle/guzzle/pull/943.
35
 
* Setting a request option to `null` when creating a request with a client will
36
 
  ensure that the option is not set. This allows you to overwrite default
37
 
  request options on a per-request basis.
38
 
  See https://github.com/guzzle/guzzle/pull/937.
39
 
* Added the ability to limit which protocols are allowed for redirects by
40
 
  specifying a `protocols` array in the `allow_redirects` request option.
41
 
* Nested futures due to retries are now resolved when waiting for synchronous
42
 
  responses. See https://github.com/guzzle/guzzle/pull/947.
43
 
* `"0"` is now an allowed URI path. See
44
 
  https://github.com/guzzle/guzzle/pull/935.
45
 
* `Query` no longer typehints on the `$query` argument in the constructor,
46
 
  allowing for strings and arrays.
47
 
* Exceptions thrown in the `end` event are now correctly wrapped with Guzzle
48
 
  specific exceptions if necessary.
49
 
 
50
 
## 5.0.3 - 2014-11-03
51
 
 
52
 
This change updates query strings so that they are treated as un-encoded values
53
 
by default where the value represents an un-encoded value to send over the
54
 
wire. A Query object then encodes the value before sending over the wire. This
55
 
means that even value query string values (e.g., ":") are url encoded. This
56
 
makes the Query class match PHP's http_build_query function. However, if you
57
 
want to send requests over the wire using valid query string characters that do
58
 
not need to be encoded, then you can provide a string to Url::setQuery() and
59
 
pass true as the second argument to specify that the query string is a raw
60
 
string that should not be parsed or encoded (unless a call to getQuery() is
61
 
subsequently made, forcing the query-string to be converted into a Query
62
 
object).
63
 
 
64
 
## 5.0.2 - 2014-10-30
65
 
 
66
 
* Added a trailing `\r\n` to multipart/form-data payloads. See
67
 
  https://github.com/guzzle/guzzle/pull/871
68
 
* Added a `GuzzleHttp\Pool::send()` convenience method to match the docs.
69
 
* Status codes are now returned as integers. See
70
 
  https://github.com/guzzle/guzzle/issues/881
71
 
* No longer overwriting an existing `application/x-www-form-urlencoded` header
72
 
  when sending POST requests, allowing for customized headers. See
73
 
  https://github.com/guzzle/guzzle/issues/877
74
 
* Improved path URL serialization.
75
 
 
76
 
  * No longer double percent-encoding characters in the path or query string if
77
 
    they are already encoded.
78
 
  * Now properly encoding the supplied path to a URL object, instead of only
79
 
    encoding ' ' and '?'.
80
 
  * Note: This has been changed in 5.0.3 to now encode query string values by
81
 
    default unless the `rawString` argument is provided when setting the query
82
 
    string on a URL: Now allowing many more characters to be present in the
83
 
    query string without being percent encoded. See http://tools.ietf.org/html/rfc3986#appendix-A
84
 
 
85
 
## 5.0.1 - 2014-10-16
86
 
 
87
 
Bugfix release.
88
 
 
89
 
* Fixed an issue where connection errors still returned response object in
90
 
  error and end events event though the response is unusable. This has been
91
 
  corrected so that a response is not returned in the `getResponse` method of
92
 
  these events if the response did not complete. https://github.com/guzzle/guzzle/issues/867
93
 
* Fixed an issue where transfer statistics were not being populated in the
94
 
  RingBridge. https://github.com/guzzle/guzzle/issues/866
95
 
 
96
 
## 5.0.0 - 2014-10-12
97
 
 
98
 
Adding support for non-blocking responses and some minor API cleanup.
99
 
 
100
 
### New Features
101
 
 
102
 
* Added support for non-blocking responses based on `guzzlehttp/guzzle-ring`.
103
 
* Added a public API for creating a default HTTP adapter.
104
 
* Updated the redirect plugin to be non-blocking so that redirects are sent
105
 
  concurrently. Other plugins like this can now be updated to be non-blocking.
106
 
* Added a "progress" event so that you can get upload and download progress
107
 
  events.
108
 
* Added `GuzzleHttp\Pool` which implements FutureInterface and transfers
109
 
  requests concurrently using a capped pool size as efficiently as possible.
110
 
* Added `hasListeners()` to EmitterInterface.
111
 
* Removed `GuzzleHttp\ClientInterface::sendAll` and marked
112
 
  `GuzzleHttp\Client::sendAll` as deprecated (it's still there, just not the
113
 
  recommended way).
114
 
 
115
 
### Breaking changes
116
 
 
117
 
The breaking changes in this release are relatively minor. The biggest thing to
118
 
look out for is that request and response objects no longer implement fluent
119
 
interfaces.
120
 
 
121
 
* Removed the fluent interfaces (i.e., `return $this`) from requests,
122
 
  responses, `GuzzleHttp\Collection`, `GuzzleHttp\Url`,
123
 
  `GuzzleHttp\Query`, `GuzzleHttp\Post\PostBody`, and
124
 
  `GuzzleHttp\Cookie\SetCookie`. This blog post provides a good outline of
125
 
  why I did this: http://ocramius.github.io/blog/fluent-interfaces-are-evil/.
126
 
  This also makes the Guzzle message interfaces compatible with the current
127
 
  PSR-7 message proposal.
128
 
* Removed "functions.php", so that Guzzle is truly PSR-4 compliant. Except
129
 
  for the HTTP request functions from function.php, these functions are now
130
 
  implemented in `GuzzleHttp\Utils` using camelCase. `GuzzleHttp\json_decode`
131
 
  moved to `GuzzleHttp\Utils::jsonDecode`. `GuzzleHttp\get_path` moved to
132
 
  `GuzzleHttp\Utils::getPath`. `GuzzleHttp\set_path` moved to
133
 
  `GuzzleHttp\Utils::setPath`. `GuzzleHttp\batch` should now be
134
 
  `GuzzleHttp\Pool::batch`, which returns an `objectStorage`. Using functions.php
135
 
  caused problems for many users: they aren't PSR-4 compliant, require an
136
 
  explicit include, and needed an if-guard to ensure that the functions are not
137
 
  declared multiple times.
138
 
* Rewrote adapter layer.
139
 
    * Removing all classes from `GuzzleHttp\Adapter`, these are now
140
 
      implemented as callables that are stored in `GuzzleHttp\Ring\Client`.
141
 
    * Removed the concept of "parallel adapters". Sending requests serially or
142
 
      concurrently is now handled using a single adapter.
143
 
    * Moved `GuzzleHttp\Adapter\Transaction` to `GuzzleHttp\Transaction`. The
144
 
      Transaction object now exposes the request, response, and client as public
145
 
      properties. The getters and setters have been removed.
146
 
* Removed the "headers" event. This event was only useful for changing the
147
 
  body a response once the headers of the response were known. You can implement
148
 
  a similar behavior in a number of ways. One example might be to use a
149
 
  FnStream that has access to the transaction being sent. For example, when the
150
 
  first byte is written, you could check if the response headers match your
151
 
  expectations, and if so, change the actual stream body that is being
152
 
  written to.
153
 
* Removed the `asArray` parameter from
154
 
  `GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header
155
 
  value as an array, then use the newly added `getHeaderAsArray()` method of
156
 
  `MessageInterface`. This change makes the Guzzle interfaces compatible with
157
 
  the PSR-7 interfaces.
158
 
* `GuzzleHttp\Message\MessageFactory` no longer allows subclasses to add
159
 
  custom request options using double-dispatch (this was an implementation
160
 
  detail). Instead, you should now provide an associative array to the
161
 
  constructor which is a mapping of the request option name mapping to a
162
 
  function that applies the option value to a request.
163
 
* Removed the concept of "throwImmediately" from exceptions and error events.
164
 
  This control mechanism was used to stop a transfer of concurrent requests
165
 
  from completing. This can now be handled by throwing the exception or by
166
 
  cancelling a pool of requests or each outstanding future request individually.
167
 
* Updated to "GuzzleHttp\Streams" 3.0.
168
 
    * `GuzzleHttp\Stream\StreamInterface::getContents()` no longer accepts a
169
 
      `maxLen` parameter. This update makes the Guzzle streams project
170
 
      compatible with the current PSR-7 proposal.
171
 
    * `GuzzleHttp\Stream\Stream::__construct`,
172
 
      `GuzzleHttp\Stream\Stream::factory`, and
173
 
      `GuzzleHttp\Stream\Utils::create` no longer accept a size in the second
174
 
      argument. They now accept an associative array of options, including the
175
 
      "size" key and "metadata" key which can be used to provide custom metadata.
176
 
 
177
 
## 4.2.2 - 2014-09-08
 
1
CHANGELOG
 
2
=========
 
3
 
 
4
4.2.3 (2014-10-05)
 
5
------------------
 
6
 
 
7
* Using `getenv` rather than `$_SERVER` for proxy settings to prevent a
 
8
  potential security issue.
 
9
* Cookies now use a space between semicolons.
 
10
* Curl adapters now rewind the response body stream to match the behavior of
 
11
  the stream adapter.
 
12
* The body of a request in the MockAdapter is now only read after invoking a
 
13
  callback.
 
14
* Can now configure the maximum number of open curl multi handles.
 
15
* Added an XmlException for more XML parsing error information.
 
16
* Using STDOUT for debug only when it is available.
 
17
 
 
18
4.2.2 (2014-09-08)
 
19
------------------
178
20
 
179
21
* Fixed a memory leak in the CurlAdapter when reusing cURL handles.
180
22
* No longer using `request_fulluri` in stream adapter proxies.
181
23
* Relative redirects are now based on the last response, not the first response.
182
24
 
183
 
## 4.2.1 - 2014-08-19
 
25
4.2.1 (2014-08-19)
 
26
------------------
184
27
 
185
28
* Ensuring that the StreamAdapter does not always add a Content-Type header
186
29
* Adding automated github releases with a phar and zip
187
30
 
188
 
## 4.2.0 - 2014-08-17
 
31
4.2.0 (2014-08-17)
 
32
------------------
189
33
 
190
34
* Now merging in default options using a case-insensitive comparison.
191
35
  Closes https://github.com/guzzle/guzzle/issues/767
204
48
* No longer utilizing the now deprecated namespaced methods from the stream
205
49
  package.
206
50
 
207
 
## 4.1.8 - 2014-08-14
 
51
4.1.8 (2014-08-14)
 
52
------------------
208
53
 
209
54
* Fixed an issue in the CurlFactory that caused setting the `stream=false`
210
55
  request option to throw an exception.
215
60
  when creating POST requests to force multipart bodies.
216
61
  See https://github.com/guzzle/guzzle/issues/768
217
62
 
218
 
## 4.1.7 - 2014-08-07
 
63
4.1.7 (2014-08-07)
 
64
------------------
219
65
 
220
66
* Fixed an error in the HistoryPlugin that caused the same request and response
221
67
  to be logged multiple times when an HTTP protocol error occurs.
231
77
* Fixed a bug where multipart/form-data POST fields were not correctly
232
78
  aggregated (e.g., values with "&").
233
79
 
234
 
## 4.1.6 - 2014-08-03
 
80
4.1.6 (2014-08-03)
 
81
------------------
235
82
 
236
83
* Added helper methods to make it easier to represent messages as strings,
237
84
  including getting the start line and getting headers as a string.
238
85
 
239
 
## 4.1.5 - 2014-08-02
 
86
4.1.5 (2014-08-02)
 
87
------------------
240
88
 
241
89
* Automatically retrying cURL "Connection died, retrying a fresh connect"
242
90
  errors when possible.
244
92
* Allowing multiple event subscriber listeners to be registered per event by
245
93
  passing an array of arrays of listener configuration.
246
94
 
247
 
## 4.1.4 - 2014-07-22
 
95
4.1.4 (2014-07-22)
 
96
------------------
248
97
 
249
98
* Fixed a bug that caused multi-part POST requests with more than one field to
250
99
  serialize incorrectly.
254
103
* A `save_to` stream is now created lazily, which means that files are not
255
104
  created on disk unless a request succeeds.
256
105
 
257
 
## 4.1.3 - 2014-07-15
 
106
4.1.3 (2014-07-15)
 
107
------------------
258
108
 
259
109
* Various fixes to multipart/form-data POST uploads
260
110
* Wrapping function.php in an if-statement to ensure Guzzle can be used
267
117
* Fixing an issue where multi-valued headers were not being utilized correctly
268
118
  in the StreamAdapter
269
119
 
270
 
## 4.1.2 - 2014-06-18
 
120
4.1.2 (2014-06-18)
 
121
------------------
271
122
 
272
123
* Added support for sending payloads with GET requests
273
124
 
274
 
## 4.1.1 - 2014-06-08
 
125
4.1.1 (2014-06-08)
 
126
------------------
275
127
 
276
128
* Fixed an issue related to using custom message factory options in subclasses
277
129
* Fixed an issue with nested form fields in a multi-part POST
278
130
* Fixed an issue with using the `json` request option for POST requests
279
131
* Added `ToArrayInterface` to `GuzzleHttp\Cookie\CookieJar`
280
132
 
281
 
## 4.1.0 - 2014-05-27
 
133
4.1.0 (2014-05-27)
 
134
------------------
282
135
 
283
136
* Added a `json` request option to easily serialize JSON payloads.
284
137
* Added a `GuzzleHttp\json_decode()` wrapper to safely parse JSON.
297
150
* Proxy requests using the StreamAdapter now properly use request_fulluri (#632)
298
151
* Added the ability to set scalars as POST fields (#628)
299
152
 
300
 
## 4.0.1 - 2014-04-04
 
153
4.0.1 (2014-04-04)
 
154
------------------
301
155
 
302
156
* The HTTP status code of a response is now set as the exception code of
303
157
  RequestException objects.
306
160
* HasDataTrait now initializes the internal data array as an empty array so
307
161
  that the toArray() method always returns an array.
308
162
 
309
 
## 4.0.0 - 2014-03-29
 
163
4.0.0 (2014-03-29)
 
164
------------------
310
165
 
311
166
* For more information on the 4.0 transition, see:
312
167
  http://mtdowling.com/blog/2014/03/15/guzzle-4-rc/
318
173
  You can now pass a callable or an array of associative arrays where each
319
174
  associative array contains the "fn", "priority", and "once" keys.
320
175
 
321
 
## 4.0.0.rc-2 - 2014-03-25
 
176
4.0.0.rc-2 (2014-03-25)
 
177
-----------------------
322
178
 
323
179
* Removed `getConfig()` and `setConfig()` from clients to avoid confusion
324
180
  around whether things like base_url, message_factory, etc. should be able to
342
198
* Marked deprecation_proxy() as internal
343
199
* Test server is now a collection of static methods on a class
344
200
 
345
 
## 4.0.0-rc.1 - 2014-03-15
 
201
4.0.0-rc.1 (2014-03-15)
 
202
-----------------------
346
203
 
347
204
* See https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40
348
205
 
349
 
## 3.8.1 - 2014-01-28
 
206
3.8.1 (2014-01-28)
 
207
------------------
350
208
 
351
209
* Bug: Always using GET requests when redirecting from a 303 response
352
210
* Bug: CURLOPT_SSL_VERIFYHOST is now correctly set to false when setting `$certificateAuthority` to false in
364
222
* Now properly escaping the regular expression delimiter when matching Cookie domains.
365
223
* Network access is now disabled when loading XML documents
366
224
 
367
 
## 3.8.0 - 2013-12-05
 
225
3.8.0 (2013-12-05)
 
226
------------------
368
227
 
369
228
* Added the ability to define a POST name for a file
370
229
* JSON response parsing now properly walks additionalProperties
384
243
* Various fixes to the AsyncPlugin
385
244
* Cleaned up build scripts
386
245
 
387
 
## 3.7.4 - 2013-10-02
 
246
3.7.4 (2013-10-02)
 
247
------------------
388
248
 
389
249
* Bug fix: 0 is now an allowed value in a description parameter that has a default value (#430)
390
250
* Bug fix: SchemaFormatter now returns an integer when formatting to a Unix timestamp
394
254
* Updated the bundled cacert.pem (#419)
395
255
* OauthPlugin now supports adding authentication to headers or query string (#425)
396
256
 
397
 
## 3.7.3 - 2013-09-08
 
257
3.7.3 (2013-09-08)
 
258
------------------
398
259
 
399
260
* Added the ability to get the exception associated with a request/command when using `MultiTransferException` and
400
261
  `CommandTransferException`.
406
267
* Bug fix: FilterIterator now relies on `\Iterator` instead of `\Traversable`.
407
268
* Bug fix: Gracefully handling malformed responses in RequestMediator::writeResponseBody()
408
269
* Bug fix: Replaced call to canCache with canCacheRequest in the CallbackCanCacheStrategy of the CachePlugin
409
 
* Bug fix: Visiting XML attributes first before visiting XML children when serializing requests
 
270
* Bug fix: Visiting XML attributes first before visting XML children when serializing requests
410
271
* Bug fix: Properly parsing headers that contain commas contained in quotes
411
272
* Bug fix: mimetype guessing based on a filename is now case-insensitive
412
273
 
413
 
## 3.7.2 - 2013-08-02
 
274
3.7.2 (2013-08-02)
 
275
------------------
414
276
 
415
277
* Bug fix: Properly URL encoding paths when using the PHP-only version of the UriTemplate expander
416
278
  See https://github.com/guzzle/guzzle/issues/371
425
287
  https://github.com/guzzle/guzzle/pull/380
426
288
* cURL multi cleanup and optimizations
427
289
 
428
 
## 3.7.1 - 2013-07-05
 
290
3.7.1 (2013-07-05)
 
291
------------------
429
292
 
430
293
* Bug fix: Setting default options on a client now works
431
294
* Bug fix: Setting options on HEAD requests now works. See #352
440
303
* Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails
441
304
* Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin
442
305
 
443
 
## 3.7.0 - 2013-06-10
 
306
3.7.0 (2013-06-10)
 
307
------------------
444
308
 
445
309
* See UPGRADING.md for more information on how to upgrade.
446
310
* Requests now support the ability to specify an array of $options when creating a request to more easily modify a
524
388
  CanCacheStrategyInterface $canCache = null)`
525
389
* Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)`
526
390
 
527
 
## 3.6.0 - 2013-05-29
 
391
3.6.0 (2013-05-29)
 
392
------------------
528
393
 
529
394
* ServiceDescription now implements ToArrayInterface
530
395
* Added command.hidden_params to blacklist certain headers from being treated as additionalParameters
549
414
  directly via interfaces
550
415
* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist
551
416
  but are a no-op until removed.
552
 
* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a
 
417
* Most classes that used to require a ``Guzzle\Service\Command\CommandInterface` typehint now request a
553
418
  `Guzzle\Service\Command\ArrayCommandInterface`.
554
419
* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response
555
420
  on a request while the request is still being transferred
561
426
* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess
562
427
* Added the ability to cast Model objects to a string to view debug information.
563
428
 
564
 
## 3.5.0 - 2013-05-13
 
429
3.5.0 (2013-05-13)
 
430
------------------
565
431
 
566
432
* Bug: Fixed a regression so that request responses are parsed only once per oncomplete event rather than multiple times
567
 
* Bug: Better cleanup of one-time events across the board (when an event is meant to fire once, it will now remove
 
433
* Bug: Better cleanup of one-time events accross the board (when an event is meant to fire once, it will now remove
568
434
  itself from the EventDispatcher)
569
435
* Bug: `Guzzle\Log\MessageFormatter` now properly writes "total_time" and "connect_time" values
570
436
* Bug: Cloning an EntityEnclosingRequest now clones the EntityBody too
583
449
  and responses that are sent over the wire
584
450
* Added `getEffectiveUrl()` and `getRedirectCount()` to Response objects
585
451
 
586
 
## 3.4.3 - 2013-04-30
 
452
3.4.3 (2013-04-30)
 
453
------------------
587
454
 
588
455
* Bug fix: Fixing bug introduced in 3.4.2 where redirect responses are duplicated on the final redirected response
589
456
* Added a check to re-extract the temp cacert bundle from the phar before sending each request
590
457
 
591
 
## 3.4.2 - 2013-04-29
 
458
3.4.2 (2013-04-29)
 
459
------------------
592
460
 
593
461
* Bug fix: Stream objects now work correctly with "a" and "a+" modes
594
462
* Bug fix: Removing `Transfer-Encoding: chunked` header when a Content-Length is present
603
471
* Cleaned up how manual responses are queued on requests (removed "queued_response" and now using request.before_send)
604
472
* Configuration loading now allows remote files
605
473
 
606
 
## 3.4.1 - 2013-04-16
 
474
3.4.1 (2013-04-16)
 
475
------------------
607
476
 
608
477
* Large refactoring to how CurlMulti handles work. There is now a proxy that sits in front of a pool of CurlMulti
609
478
  handles. This greatly simplifies the implementation, fixes a couple bugs, and provides a small performance boost.
616
485
* Added support for oauth_verifier in OAuth signatures
617
486
* Added support to attempt to retrieve a command first literally, then ucfirst, the with inflection
618
487
 
619
 
## 3.4.0 - 2013-04-11
 
488
3.4.0 (2013-04-11)
 
489
------------------
620
490
 
621
491
* Bug fix: URLs are now resolved correctly based on http://tools.ietf.org/html/rfc3986#section-5.2. #289
622
492
* Bug fix: Absolute URLs with a path in a service description will now properly override the base URL. #289
646
516
  POST fields or files (the latter is only used when emulating a form POST in the browser).
647
517
* Lots of cleanup to CurlHandle::factory and RequestFactory::createRequest
648
518
 
649
 
## 3.3.1 - 2013-03-10
 
519
3.3.1 (2013-03-10)
 
520
------------------
650
521
 
651
522
* Added the ability to create PHP streaming responses from HTTP requests
652
523
* Bug fix: Running any filters when parsing response headers with service descriptions
657
528
* RequestFactory::create() now uses the key of a POST file when setting the POST file name
658
529
* Added xmlAllowEmpty to serialize an XML body even if no XML specific parameters are set
659
530
 
660
 
## 3.3.0 - 2013-03-03
 
531
3.3.0 (2013-03-03)
 
532
------------------
661
533
 
662
534
* A large number of performance optimizations have been made
663
535
* Bug fix: Added 'wb' as a valid write mode for streams
681
553
    * Added support for stale-if-error so that the CachePlugin can now serve stale content from the cache on error
682
554
    * Debug headers can now added to cached response in the CachePlugin
683
555
 
684
 
## 3.2.0 - 2013-02-14
 
556
3.2.0 (2013-02-14)
 
557
------------------
685
558
 
686
559
* CurlMulti is no longer reused globally. A new multi object is created per-client. This helps to isolate clients.
687
560
* URLs with no path no longer contain a "/" by default
700
573
* Bug fix: The default exponential backoff BackoffPlugin was not giving when the request threshold was exceeded
701
574
* Bug fix: Guzzle now takes the first found value when grabbing Cache-Control directives
702
575
 
703
 
## 3.1.2 - 2013-01-27
 
576
3.1.2 (2013-01-27)
 
577
------------------
704
578
 
705
579
* Refactored how operation responses are parsed. Visitors now include a before() method responsible for parsing the
706
580
  response body. For example, the XmlVisitor now parses the XML response into an array in the before() method.
709
583
* Fixed a bug where redirect responses were not chained correctly using getPreviousResponse()
710
584
* Setting default headers on a client after setting the user-agent will not erase the user-agent setting
711
585
 
712
 
## 3.1.1 - 2013-01-20
 
586
3.1.1 (2013-01-20)
 
587
------------------
713
588
 
714
589
* Adding wildcard support to Guzzle\Common\Collection::getPath()
715
590
* Adding alias support to ServiceBuilder configs
716
591
* Adding Guzzle\Service\Resource\CompositeResourceIteratorFactory and cleaning up factory interface
717
592
 
718
 
## 3.1.0 - 2013-01-12
 
593
3.1.0 (2013-01-12)
 
594
------------------
719
595
 
720
596
* BC: CurlException now extends from RequestException rather than BadResponseException
721
597
* BC: Renamed Guzzle\Plugin\Cache\CanCacheStrategyInterface::canCache() to canCacheRequest() and added CanCacheResponse()
732
608
* Added `extends` attributes to service description parameters
733
609
* Added getModels to ServiceDescriptionInterface
734
610
 
735
 
## 3.0.7 - 2012-12-19
 
611
3.0.7 (2012-12-19)
 
612
------------------
736
613
 
737
614
* Fixing phar detection when forcing a cacert to system if null or true
738
615
* Allowing filename to be passed to `Guzzle\Http\Message\Request::setResponseBody()`
739
616
* Cleaning up `Guzzle\Common\Collection::inject` method
740
617
* Adding a response_body location to service descriptions
741
618
 
742
 
## 3.0.6 - 2012-12-09
 
619
3.0.6 (2012-12-09)
 
620
------------------
743
621
 
744
622
* CurlMulti performance improvements
745
623
* Adding setErrorResponses() to Operation
746
624
* composer.json tweaks
747
625
 
748
 
## 3.0.5 - 2012-11-18
 
626
3.0.5 (2012-11-18)
 
627
------------------
749
628
 
750
629
* Bug: Fixing an infinite recursion bug caused from revalidating with the CachePlugin
751
630
* Bug: Response body can now be a string containing "0"
755
634
* DefaultRequestSerializer now supports array URI parameter values for URI template expansion
756
635
* Added better mimetype guessing to requests and post files
757
636
 
758
 
## 3.0.4 - 2012-11-11
 
637
3.0.4 (2012-11-11)
 
638
------------------
759
639
 
760
640
* Bug: Fixed a bug when adding multiple cookies to a request to use the correct glue value
761
641
* Bug: Cookies can now be added that have a name, domain, or value set to "0"
766
646
* Added setStream to StreamInterface to actually make it possible to implement custom rewind behavior for entity bodies
767
647
* Added the ability to create any sort of hash for a stream rather than just an MD5 hash
768
648
 
769
 
## 3.0.3 - 2012-11-04
 
649
3.0.3 (2012-11-04)
 
650
------------------
770
651
 
771
652
* Implementing redirects in PHP rather than cURL
772
653
* Added PECL URI template extension and using as default parser if available
775
656
* Adding ToArrayInterface throughout library
776
657
* Fixing OauthPlugin to create unique nonce values per request
777
658
 
778
 
## 3.0.2 - 2012-10-25
 
659
3.0.2 (2012-10-25)
 
660
------------------
779
661
 
780
662
* Magic methods are enabled by default on clients
781
663
* Magic methods return the result of a command
782
664
* Service clients no longer require a base_url option in the factory
783
665
* Bug: Fixed an issue with URI templates where null template variables were being expanded
784
666
 
785
 
## 3.0.1 - 2012-10-22
 
667
3.0.1 (2012-10-22)
 
668
------------------
786
669
 
787
670
* Models can now be used like regular collection objects by calling filter, map, etc.
788
671
* Models no longer require a Parameter structure or initial data in the constructor
789
672
* Added a custom AppendIterator to get around a PHP bug with the `\AppendIterator`
790
673
 
791
 
## 3.0.0 - 2012-10-15
 
674
3.0.0 (2012-10-15)
 
675
------------------
792
676
 
793
677
* Rewrote service description format to be based on Swagger
794
678
    * Now based on JSON schema
820
704
* Cleaning up Collection class and removing default values from the get method
821
705
* Fixed ZF2 cache adapters
822
706
 
823
 
## 2.8.8 - 2012-10-15
 
707
2.8.8 (2012-10-15)
 
708
------------------
824
709
 
825
710
* Bug: Fixed a cookie issue that caused dot prefixed domains to not match where popular browsers did
826
711
 
827
 
## 2.8.7 - 2012-09-30
 
712
2.8.7 (2012-09-30)
 
713
------------------
828
714
 
829
715
* Bug: Fixed config file aliases for JSON includes
830
716
* Bug: Fixed cookie bug on a request object by using CookieParser to parse cookies on requests
838
724
* Added the ability to remove POST fields from OAuth signatures
839
725
* OAuth plugin now supports 2-legged OAuth
840
726
 
841
 
## 2.8.6 - 2012-09-05
 
727
2.8.6 (2012-09-05)
 
728
------------------
842
729
 
843
730
* Added the ability to modify and build service descriptions
844
731
* Added the use of visitors to apply parameters to locations in service descriptions using the dynamic command
852
739
* The JsonLoader now supports aliasing filenames with different filenames. This allows you to alias something like
853
740
  '_default' with a default JSON configuration file.
854
741
 
855
 
## 2.8.5 - 2012-08-29
 
742
2.8.5 (2012-08-29)
 
743
------------------
856
744
 
857
745
* Bug: Suppressed empty arrays from URI templates
858
746
* Bug: Added the missing $options argument from ServiceDescription::factory to enable caching
860
748
* AbstractCommand commands are now invokable
861
749
* Added a way to get the data used when signing an Oauth request before a request is sent
862
750
 
863
 
## 2.8.4 - 2012-08-15
 
751
2.8.4 (2012-08-15)
 
752
------------------
864
753
 
865
754
* Bug: Custom delay time calculations are no longer ignored in the ExponentialBackoffPlugin
866
755
* 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.
874
763
* Added the ability of the MockPlugin to consume mocked request bodies
875
764
* LogPlugin now exposes request and response objects in the extras array
876
765
 
877
 
## 2.8.3 - 2012-07-30
 
766
2.8.3 (2012-07-30)
 
767
------------------
878
768
 
879
769
* Bug: Fixed a case where empty POST requests were sent as GET requests
880
770
* Bug: Fixed a bug in ExponentialBackoffPlugin that caused fatal errors when retrying an EntityEnclosingRequest that does not have a body
881
771
* Bug: Setting the response body of a request to null after completing a request, not when setting the state of a request to new
882
772
* Added multiple inheritance to service description commands
883
 
* Added an ApiCommandInterface and added `getParamNames()` and `hasParam()`
 
773
* Added an ApiCommandInterface and added ``getParamNames()`` and ``hasParam()``
884
774
* Removed the default 2mb size cutoff from the Md5ValidatorPlugin so that it now defaults to validating everything
885
775
* Changed CurlMulti::perform to pass a smaller timeout to CurlMulti::executeHandles
886
776
 
887
 
## 2.8.2 - 2012-07-24
 
777
2.8.2 (2012-07-24)
 
778
------------------
888
779
 
889
780
* Bug: Query string values set to 0 are no longer dropped from the query string
890
 
* Bug: A Collection object is no longer created each time a call is made to `Guzzle\Service\Command\AbstractCommand::getRequestHeaders()`
891
 
* Bug: `+` is now treated as an encoded space when parsing query strings
 
781
* Bug: A Collection object is no longer created each time a call is made to ``Guzzle\Service\Command\AbstractCommand::getRequestHeaders()``
 
782
* Bug: ``+`` is now treated as an encoded space when parsing query strings
892
783
* QueryString and Collection performance improvements
893
784
* Allowing dot notation for class paths in filters attribute of a service descriptions
894
785
 
895
 
## 2.8.1 - 2012-07-16
 
786
2.8.1 (2012-07-16)
 
787
------------------
896
788
 
897
789
* Loosening Event Dispatcher dependency
898
790
* POST redirects can now be customized using CURLOPT_POSTREDIR
899
791
 
900
 
## 2.8.0 - 2012-07-15
 
792
2.8.0 (2012-07-15)
 
793
------------------
901
794
 
902
795
* BC: Guzzle\Http\Query
903
796
    * Query strings with empty variables will always show an equal sign unless the variable is set to QueryString::BLANK (e.g. ?acl= vs ?acl)
905
798
    * Changed setEncodeValues(bool) and setEncodeFields(bool) to useUrlEncoding(bool)
906
799
    * Changed the aggregation functions of QueryString to be static methods
907
800
    * Can now use fromString() with querystrings that have a leading ?
908
 
* cURL configuration values can be specified in service descriptions using `curl.` prefixed parameters
 
801
* cURL configuration values can be specified in service descriptions using ``curl.`` prefixed parameters
909
802
* Content-Length is set to 0 before emitting the request.before_send event when sending an empty request body
910
803
* Cookies are no longer URL decoded by default
911
804
* Bug: URI template variables set to null are no longer expanded
912
805
 
913
 
## 2.7.2 - 2012-07-02
 
806
2.7.2 (2012-07-02)
 
807
------------------
914
808
 
915
809
* BC: Moving things to get ready for subtree splits. Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser.
916
810
* BC: Removing Guzzle\Common\Batch\Batch::count() and replacing it with isEmpty()
920
814
* Allowing deeply nested arrays for composite variables in URI templates
921
815
* Batch divisors can now return iterators or arrays
922
816
 
923
 
## 2.7.1 - 2012-06-26
 
817
2.7.1 (2012-06-26)
 
818
------------------
924
819
 
925
820
* Minor patch to update version number in UA string
926
821
* Updating build process
927
822
 
928
 
## 2.7.0 - 2012-06-25
 
823
2.7.0 (2012-06-25)
 
824
------------------
929
825
 
930
826
* BC: Inflection classes moved to Guzzle\Inflection. No longer static methods. Can now inject custom inflectors into classes.
931
827
* BC: Removed magic setX methods from commands
942
838
* Fixed some tests so that they pass more reliably
943
839
* Added Guzzle\Common\Log\ArrayLogAdapter
944
840
 
945
 
## 2.6.6 - 2012-06-10
 
841
2.6.6 (2012-06-10)
 
842
------------------
946
843
 
947
844
* BC: Removing Guzzle\Http\Plugin\BatchQueuePlugin
948
845
* BC: Removing Guzzle\Service\Command\CommandSet
952
849
* Adding result_type, result_doc, deprecated, and doc_url to service descriptions
953
850
* Bug: Changed the default cookie header casing back to 'Cookie'
954
851
 
955
 
## 2.6.5 - 2012-06-03
 
852
2.6.5 (2012-06-03)
 
853
------------------
956
854
 
957
855
* BC: Renaming Guzzle\Http\Message\RequestInterface::getResourceUri() to getResource()
958
856
* BC: Removing unused AUTH_BASIC and AUTH_DIGEST constants from
964
862
* Adding getCookies() to request interface.
965
863
* Making it easier to add event subscribers to HasDispatcherInterface classes. Can now directly call addSubscriber()
966
864
 
967
 
## 2.6.4 - 2012-05-30
 
865
2.6.4 (2012-05-30)
 
866
------------------
968
867
 
969
868
* BC: Cleaning up how POST files are stored in EntityEnclosingRequest objects. Adding PostFile class.
970
869
* BC: Moving ApiCommand specific functionality from the Inspector and on to the ApiCommand
981
880
* Allowing the result of a command object to be changed
982
881
* Parsing location and type sub values when instantiating a service description rather than over and over at runtime
983
882
 
984
 
## 2.6.3 - 2012-05-23
 
883
2.6.3 (2012-05-23)
 
884
------------------
985
885
 
986
886
* [BC] Guzzle\Common\FromConfigInterface no longer requires any config options.
987
887
* [BC] Refactoring how POST files are stored on an EntityEnclosingRequest. They are now separate from POST fields.
995
895
* Split the Guzzle\Service\Inspector::validateConfig method into two methods. One to initialize when a command is created, and one to validate.
996
896
* CS updates
997
897
 
998
 
## 2.6.2 - 2012-05-19
 
898
2.6.2 (2012-05-19)
 
899
------------------
999
900
 
1000
901
* [Http] Better handling of nested scope requests in CurlMulti.  Requests are now always prepares in the send() method rather than the addRequest() method.
1001
902
 
1002
 
## 2.6.1 - 2012-05-19
 
903
2.6.1 (2012-05-19)
 
904
------------------
1003
905
 
1004
906
* [BC] Removing 'path' support in service descriptions.  Use 'uri'.
1005
907
* [BC] Guzzle\Service\Inspector::parseDocBlock is now protected. Adding getApiParamsForClass() with cache.
1010
912
* Adding checks to EntityEnclosingRequest so that empty POST files and fields are ignored.
1011
913
* Making the method signature of Guzzle\Service\Builder\ServiceBuilder::factory more flexible.
1012
914
 
1013
 
## 2.6.0 - 2012-05-15
 
915
2.6.0 (2012-05-15)
 
916
------------------
1014
917
 
1015
918
* [BC] Moving Guzzle\Service\Builder to Guzzle\Service\Builder\ServiceBuilder
1016
919
* [BC] Executing a Command returns the result of the command rather than the command
1038
941
* Adding the ability to include other service builder config files from within XML and JSON files
1039
942
* Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method.
1040
943
 
1041
 
## 2.5.0 - 2012-05-08
 
944
2.5.0 (2012-05-08)
 
945
------------------
1042
946
 
1043
947
* Major performance improvements
1044
948
* [BC] Simplifying Guzzle\Common\Collection.  Please check to see if you are using features that are now deprecated.