1========= 2Changelog 3========= 4 53.0.0 (2014-10-12) 6------------------ 7 8* Now supports creating streams from functions and iterators. 9* Supports creating buffered streams and asynchronous streams. 10* Removed ``functions.php``. Use the corresponding functions provided by 11 ``GuzzleHttp\Streams\Utils`` instead. 12* Moved ``GuzzleHttp\Stream\MetadataStreamInterface::getMetadata`` to 13 ``GuzzleHttp\Stream\StreamInterface``. MetadataStreamInterface is no longer 14 used and is marked as deprecated. 15* Added ``attach()`` to ``GuzzleHttp\Stream\StreamInterface`` for PSR-7 16 compatibility. 17* Removed ``flush()`` from StreamInterface. 18* Removed the ``$maxLength`` parameter from 19 ``GuzzleHttp\Stream\StreamInterface::getContents()``. This function now 20 returns the entire remainder of the stream. If you want to limit the maximum 21 amount of data read from the stream, use the 22 ``GuzzleHttp\Stream\Utils::copyToString()`` function. 23* Streams that return an empty string, ``''``, are no longer considered a 24 failure. You MUST return ``false`` to mark the read as a failure, and ensure 25 that any decorators you create properly return ``true`` in response to the 26 ``eof()`` method when the stream is consumed. 27* ``GuzzleHttp\Stream\Stream::__construct``, 28 ``GuzzleHttp\Stream\Stream::factory``, and 29 ``GuzzleHttp\Stream\Utils::create`` no longer accept a size in the second 30 argument. They now accept an associative array of options, including the 31 "size" key and "metadata" key which can be used to provide custom metadata. 32* Added ``GuzzleHttp\Stream\BufferStream`` to add support for buffering data, 33 and when read, shifting data off of the buffer. 34* Added ``GuzzleHttp\Stream\NullBuffer`` which can be used as a buffer that 35 does not actually store any data. 36* Added ``GuzzleHttp\Stream\AsyncStream`` to provide support for non-blocking 37 streams that can be filled by a remote source (e.g., an event-loop). If a 38 ``drain`` option is provided, the stream can also act as if it is a blocking 39 stream. 40 412.1.0 (2014-08-17) 42------------------ 43 44* Added an InflateStream to inflate gzipped or deflated content. 45* Added ``flush`` to stream wrapper. 46* Added the ability to easily register the GuzzleStreamWrapper if needed. 47 482.0.0 (2014-08-16) 49------------------ 50 51* Deprecated functions.php and moved all of those methods to 52 ``GuzzleHttp\Streams\Utils``. Use ``GuzzleHttp\Stream\Stream::factory()`` 53 instead of ``GuzzleHttp\Stream\create()`` to create new streams. 54* Added ``flush()`` to ``StreamInterface``. This method is used to flush any 55 underlying stream write buffers. 56* Added ``FnStream`` to easily decorate stream behavior with callables. 57* ``Utils::hash`` now throws an exception when the stream cannot seek to 0. 58 591.5.1 (2014-09-10) 60------------------ 61 62* Stream metadata is grabbed from the underlying stream each time 63 ``getMetadata`` is called rather than returning a value from a cache. 64* Properly closing all underlying streams when AppendStream is closed. 65* Seek functions no longer throw exceptions. 66* LazyOpenStream now correctly returns the underlying stream resource when 67 detached. 68 691.5.0 (2014-08-07) 70------------------ 71 72* Added ``Stream\safe_open`` to open stream resources and throw exceptions 73 instead of raising errors. 74 751.4.0 (2014-07-19) 76------------------ 77 78* Added a LazyOpenStream 79 801.3.0 (2014-07-15) 81------------------ 82 83* Added an AppendStream to stream over multiple stream one after the other. 84 851.2.0 (2014-07-15) 86------------------ 87 88* Updated the ``detach()`` method to return the underlying stream resource or 89 ``null`` if it does not wrap a resource. 90* Multiple fixes for how streams behave when the underlying resource is 91 detached 92* Do not clear statcache when a stream does not have a 'uri' 93* Added a fix to LimitStream 94* Added a condition to ensure that functions.php can be required multiple times 95