You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

313 lines
8.2 KiB

3 years ago
  1. # Change Log
  2. All notable changes to this project will be documented in this file.
  3. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
  4. and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
  5. ## Unreleased
  6. ## 2.0.0 - 2021-06-30
  7. Identical to the RC release.
  8. ## 2.0.0@RC-1 - 2021-04-29
  9. ### Fixed
  10. - Handle possibly unset `url` in `stream_get_meta_data`
  11. ## 2.0.0@beta-1 - 2021-03-21
  12. ### Added
  13. - PSR-17 factories
  14. - Made classes final
  15. - PHP7 type hints
  16. ### Changed
  17. - When building a query string, booleans are represented as 1 and 0.
  18. ### Removed
  19. - PHP < 7.2 support
  20. - All functions in the Guzzle\Psr7 namespace
  21. ## 1.8.1 - 2021-03-21
  22. ### Fixed
  23. - Issue parsing IPv6 URLs
  24. - Issue modifying ServerRequest lost all its attributes
  25. ## 1.8.0 - 2021-03-21
  26. ### Added
  27. - Locale independent URL parsing
  28. - Most classes got a `@final` annotation to prepare for 2.0
  29. ### Fixed
  30. - Issue when creating stream from `php://input` and curl-ext is not installed
  31. - Broken `Utils::tryFopen()` on PHP 8
  32. ## 1.7.0 - 2020-09-30
  33. ### Added
  34. - Replaced functions by static methods
  35. ### Fixed
  36. - Converting a non-seekable stream to a string
  37. - Handle multiple Set-Cookie correctly
  38. - Ignore array keys in header values when merging
  39. - Allow multibyte characters to be parsed in `Message:bodySummary()`
  40. ### Changed
  41. - Restored partial HHVM 3 support
  42. ## [1.6.1] - 2019-07-02
  43. ### Fixed
  44. - Accept null and bool header values again
  45. ## [1.6.0] - 2019-06-30
  46. ### Added
  47. - Allowed version `^3.0` of `ralouphie/getallheaders` dependency (#244)
  48. - Added MIME type for WEBP image format (#246)
  49. - Added more validation of values according to PSR-7 and RFC standards, e.g. status code range (#250, #272)
  50. ### Changed
  51. - Tests don't pass with HHVM 4.0, so HHVM support got dropped. Other libraries like composer have done the same. (#262)
  52. - Accept port number 0 to be valid (#270)
  53. ### Fixed
  54. - Fixed subsequent reads from `php://input` in ServerRequest (#247)
  55. - Fixed readable/writable detection for certain stream modes (#248)
  56. - Fixed encoding of special characters in the `userInfo` component of an URI (#253)
  57. ## [1.5.2] - 2018-12-04
  58. ### Fixed
  59. - Check body size when getting the message summary
  60. ## [1.5.1] - 2018-12-04
  61. ### Fixed
  62. - Get the summary of a body only if it is readable
  63. ## [1.5.0] - 2018-12-03
  64. ### Added
  65. - Response first-line to response string exception (fixes #145)
  66. - A test for #129 behavior
  67. - `get_message_body_summary` function in order to get the message summary
  68. - `3gp` and `mkv` mime types
  69. ### Changed
  70. - Clarify exception message when stream is detached
  71. ### Deprecated
  72. - Deprecated parsing folded header lines as per RFC 7230
  73. ### Fixed
  74. - Fix `AppendStream::detach` to not close streams
  75. - `InflateStream` preserves `isSeekable` attribute of the underlying stream
  76. - `ServerRequest::getUriFromGlobals` to support URLs in query parameters
  77. Several other fixes and improvements.
  78. ## [1.4.2] - 2017-03-20
  79. ### Fixed
  80. - Reverted BC break to `Uri::resolve` and `Uri::removeDotSegments` by removing
  81. calls to `trigger_error` when deprecated methods are invoked.
  82. ## [1.4.1] - 2017-02-27
  83. ### Added
  84. - Rriggering of silenced deprecation warnings.
  85. ### Fixed
  86. - Reverted BC break by reintroducing behavior to automagically fix a URI with a
  87. relative path and an authority by adding a leading slash to the path. It's only
  88. deprecated now.
  89. ## [1.4.0] - 2017-02-21
  90. ### Added
  91. - Added common URI utility methods based on RFC 3986 (see documentation in the readme):
  92. - `Uri::isDefaultPort`
  93. - `Uri::isAbsolute`
  94. - `Uri::isNetworkPathReference`
  95. - `Uri::isAbsolutePathReference`
  96. - `Uri::isRelativePathReference`
  97. - `Uri::isSameDocumentReference`
  98. - `Uri::composeComponents`
  99. - `UriNormalizer::normalize`
  100. - `UriNormalizer::isEquivalent`
  101. - `UriResolver::relativize`
  102. ### Changed
  103. - Ensure `ServerRequest::getUriFromGlobals` returns a URI in absolute form.
  104. - Allow `parse_response` to parse a response without delimiting space and reason.
  105. - Ensure each URI modification results in a valid URI according to PSR-7 discussions.
  106. Invalid modifications will throw an exception instead of returning a wrong URI or
  107. doing some magic.
  108. - `(new Uri)->withPath('foo')->withHost('example.com')` will throw an exception
  109. because the path of a URI with an authority must start with a slash "/" or be empty
  110. - `(new Uri())->withScheme('http')` will return `'http://localhost'`
  111. ### Deprecated
  112. - `Uri::resolve` in favor of `UriResolver::resolve`
  113. - `Uri::removeDotSegments` in favor of `UriResolver::removeDotSegments`
  114. ### Fixed
  115. - `Stream::read` when length parameter <= 0.
  116. - `copy_to_stream` reads bytes in chunks instead of `maxLen` into memory.
  117. - `ServerRequest::getUriFromGlobals` when `Host` header contains port.
  118. - Compatibility of URIs with `file` scheme and empty host.
  119. ## [1.3.1] - 2016-06-25
  120. ### Fixed
  121. - `Uri::__toString` for network path references, e.g. `//example.org`.
  122. - Missing lowercase normalization for host.
  123. - Handling of URI components in case they are `'0'` in a lot of places,
  124. e.g. as a user info password.
  125. - `Uri::withAddedHeader` to correctly merge headers with different case.
  126. - Trimming of header values in `Uri::withAddedHeader`. Header values may
  127. be surrounded by whitespace which should be ignored according to RFC 7230
  128. Section 3.2.4. This does not apply to header names.
  129. - `Uri::withAddedHeader` with an array of header values.
  130. - `Uri::resolve` when base path has no slash and handling of fragment.
  131. - Handling of encoding in `Uri::with(out)QueryValue` so one can pass the
  132. key/value both in encoded as well as decoded form to those methods. This is
  133. consistent with withPath, withQuery etc.
  134. - `ServerRequest::withoutAttribute` when attribute value is null.
  135. ## [1.3.0] - 2016-04-13
  136. ### Added
  137. - Remaining interfaces needed for full PSR7 compatibility
  138. (ServerRequestInterface, UploadedFileInterface, etc.).
  139. - Support for stream_for from scalars.
  140. ### Changed
  141. - Can now extend Uri.
  142. ### Fixed
  143. - A bug in validating request methods by making it more permissive.
  144. ## [1.2.3] - 2016-02-18
  145. ### Fixed
  146. - Support in `GuzzleHttp\Psr7\CachingStream` for seeking forward on remote
  147. streams, which can sometimes return fewer bytes than requested with `fread`.
  148. - Handling of gzipped responses with FNAME headers.
  149. ## [1.2.2] - 2016-01-22
  150. ### Added
  151. - Support for URIs without any authority.
  152. - Support for HTTP 451 'Unavailable For Legal Reasons.'
  153. - Support for using '0' as a filename.
  154. - Support for including non-standard ports in Host headers.
  155. ## [1.2.1] - 2015-11-02
  156. ### Changes
  157. - Now supporting negative offsets when seeking to SEEK_END.
  158. ## [1.2.0] - 2015-08-15
  159. ### Changed
  160. - Body as `"0"` is now properly added to a response.
  161. - Now allowing forward seeking in CachingStream.
  162. - Now properly parsing HTTP requests that contain proxy targets in
  163. `parse_request`.
  164. - functions.php is now conditionally required.
  165. - user-info is no longer dropped when resolving URIs.
  166. ## [1.1.0] - 2015-06-24
  167. ### Changed
  168. - URIs can now be relative.
  169. - `multipart/form-data` headers are now overridden case-insensitively.
  170. - URI paths no longer encode the following characters because they are allowed
  171. in URIs: "(", ")", "*", "!", "'"
  172. - A port is no longer added to a URI when the scheme is missing and no port is
  173. present.
  174. ## 1.0.0 - 2015-05-19
  175. Initial release.
  176. Currently unsupported:
  177. - `Psr\Http\Message\ServerRequestInterface`
  178. - `Psr\Http\Message\UploadedFileInterface`
  179. [1.6.0]: https://github.com/guzzle/psr7/compare/1.5.2...1.6.0
  180. [1.5.2]: https://github.com/guzzle/psr7/compare/1.5.1...1.5.2
  181. [1.5.1]: https://github.com/guzzle/psr7/compare/1.5.0...1.5.1
  182. [1.5.0]: https://github.com/guzzle/psr7/compare/1.4.2...1.5.0
  183. [1.4.2]: https://github.com/guzzle/psr7/compare/1.4.1...1.4.2
  184. [1.4.1]: https://github.com/guzzle/psr7/compare/1.4.0...1.4.1
  185. [1.4.0]: https://github.com/guzzle/psr7/compare/1.3.1...1.4.0
  186. [1.3.1]: https://github.com/guzzle/psr7/compare/1.3.0...1.3.1
  187. [1.3.0]: https://github.com/guzzle/psr7/compare/1.2.3...1.3.0
  188. [1.2.3]: https://github.com/guzzle/psr7/compare/1.2.2...1.2.3
  189. [1.2.2]: https://github.com/guzzle/psr7/compare/1.2.1...1.2.2
  190. [1.2.1]: https://github.com/guzzle/psr7/compare/1.2.0...1.2.1
  191. [1.2.0]: https://github.com/guzzle/psr7/compare/1.1.0...1.2.0
  192. [1.1.0]: https://github.com/guzzle/psr7/compare/1.0.0...1.1.0