3 All notable changes to this project will be documented in this file, in reverse chronological order by release.
13 - [#16](https://github.com/zendframework/zend-feed/pull/16) updates the `Zend\Feed\Pubsubhubbub\AbstractCallback` to no longer use the
14 `$GLOBALS['HTTP_RAW_POST_DATA']` value as a fallback when `php://input` is
15 empty. The fallback existed because, prior to PHP 5.6, `php://input` could
16 only be read once. As we now require PHP 5.6, the fallback is unnecessary,
17 and best removed as the globals value is deprecated.
29 - [#68](https://github.com/zendframework/zend-feed/pull/68) fixes the behavior of `Zend\Feed\Writer\AbstractFeed::setTitle()` and
30 `Zend\Feed\Writer\Entry::setTitle()` to accept the string `"0"`.
32 - [#68](https://github.com/zendframework/zend-feed/pull/68) updates both `Zend\Feed\Writer\AbstractFeed` and `Zend\Feed\Writer\Entry`
33 to no longer throw an exception for entry titles which have a string value of `0`.
39 - [#52](https://github.com/zendframework/zend-feed/pull/52) adds support for PHP
42 - [#53](https://github.com/zendframework/zend-feed/pull/53) adds a number of
43 additional aliases to the `Writer\ExtensionPluginManager` to ensure plugins
44 will be pulled as expected.
46 - [#63](https://github.com/zendframework/zend-feed/pull/63) adds the feed title
47 to the attributes incorporated in the `FeedSet` instance, per what was already
50 - [#55](https://github.com/zendframework/zend-feed/pull/55) makes two API
51 additions to the `StandaloneExtensionManager` implementations of both the reader
52 and writer subcomponents:
54 - `$manager->add($name, $class)` will add an extension class using the
56 - `$manager->remove($name)` will remove an existing extension by the provided
69 - [#52](https://github.com/zendframework/zend-feed/pull/52) removes support for
74 - [#50](https://github.com/zendframework/zend-feed/pull/50) fixes a few issues
75 in the PubSubHubbub `Subscription` model where counting was being performed on
76 uncountable data; this ensures the subcomponent will work correctly under PHP
83 - [#27](https://github.com/zendframework/zend-feed/pull/27) adds a documentation
84 chapter demonstrating wrapping a PSR-7 client to use with `Zend\Feed\Reader`.
85 - [#22](https://github.com/zendframework/zend-feed/pull/22) adds missing
86 ExtensionManagerInterface on Writer\ExtensionPluginManager.
87 - [#32](https://github.com/zendframework/zend-feed/pull/32) adds missing
88 ExtensionManagerInterface on Reader\ExtensionPluginManager.
96 - [#38](https://github.com/zendframework/zend-feed/pull/38) dropped php 5.5
101 - [#35](https://github.com/zendframework/zend-feed/pull/35) fixed
102 "A non-numeric value encountered" in php 7.1
103 - [#39](https://github.com/zendframework/zend-feed/pull/39) fixed protocol
104 relative link absolutisation
105 - [#40](https://github.com/zendframework/zend-feed/pull/40) fixed service
106 manager v3 compatibility aliases in extension plugin managers
108 ## 2.7.0 - 2016-02-11
112 - [#21](https://github.com/zendframework/zend-feed/pull/21) edits, revises, and
113 prepares the documentation for publication at https://zendframework.github.io/zend-feed/
125 - [#20](https://github.com/zendframework/zend-feed/pull/20) makes the two
126 zend-servicemanager extension manager implementations forwards compatible
127 with version 3, and the overall code base forwards compatible with zend-stdlib
130 ## 2.6.0 - 2015-11-24
134 - [#13](https://github.com/zendframework/zend-feed/pull/13) introduces
135 `Zend\Feed\Writer\StandaloneExtensionManager`, an implementation of
136 `Zend\Feed\Writer\ExtensionManagerInterface` that has no dependencies.
137 `Zend\Feed\Writer\ExtensionManager` now composes this by default, instead of
138 `Zend\Feed\Writer\ExtensionPluginManager`, for managing the various feed and
139 entry extensions. If you relied on `ExtensionPluginManager` previously, you
140 will need to create an instance manually and inject it into the `Writer`
142 - [#14](https://github.com/zendframework/zend-feed/pull/14) introduces:
143 - `Zend\Feed\Reader\Http\HeaderAwareClientInterface`, which extends
144 `ClientInterface` and adds an optional argument to the `get()` method,
145 `array $headers = []`; this argument allows specifying request headers for
146 the client to send. `$headers` should have header names for keys, and the
147 values should be arrays of strings/numbers representing the header values
148 (if only a single value is necessary, it should be represented as an single
150 - `Zend\Feed\Reader\Http\HeaderAwareResponseInterface`, which extends
151 `ResponseInterface` and adds the method `getHeader($name, $default = null)`.
152 Clients may return either a `ResponseInterface` or
153 `HeaderAwareResponseInterface` instance.
154 - `Zend\Feed\Reader\Http\Response`, which is an implementation of
155 `HeaderAwareResponseInterface`. Its constructor accepts the status code,
156 body, and, optionally, headers.
157 - `Zend\Feed\Reader\Http\Psr7ResponseDecorator`, which is an implementation of
158 `HeaderAwareResponseInterface`. Its constructor accepts a PSR-7 response
159 instance, and the various methdos then proxy to those methods. This should
160 make creating wrappers for PSR-7 HTTP clients trivial.
161 - `Zend\Feed\Reader\Http\ZendHttpClientDecorator`, which decorates a
162 `Zend\Http\Client` instance, implements `HeaderAwareClientInterface`, and
163 returns a `Response` instance seeded from the zend-http response upon
164 calling `get()`. The class exposes a `getDecoratedClient()` method to allow
165 retrieval of the decorated zend-http client instance.
177 - [#5](https://github.com/zendframework/zend-feed/pull/5) fixes the enclosure
178 length check to allow zero and integer strings.
179 - [#2](https://github.com/zendframework/zend-feed/pull/2) ensures that the
180 routine for "absolutising" a link in `Reader\FeedSet` always generates a URI
182 - [#14](https://github.com/zendframework/zend-feed/pull/14) makes the following
183 changes to fix behavior around HTTP clients used within
184 `Zend\Feed\Reader\Reader`:
185 - `setHttpClient()` now ensures that the passed client is either a
186 `Zend\Feed\Reader\Http\ClientInterface` or `Zend\Http\Client`, raising an
187 `InvalidArgumentException` if neither. If a `Zend\Http\Client` is passed, it
188 is passed to the constructor of `Zend\Feed\Reader\Http\ZendHttpClientDecorator`,
189 and the decorator instance is used.
190 - `getHttpClient()` now *always* returns a `Zend\Feed\Reader\Http\ClientInterface`
191 instance. If no instance is currently registered, it lazy loads a
192 `ZendHttpClientDecorator` instance.
193 - `import()` was updated to consume a `ClientInterface` instance; when caches
194 are in play, it checks the client against `HeaderAwareClientInterface` to
195 determine if it can check for HTTP caching headers, and, if so, to retrieve
197 - `findFeedLinks()` was updated to consume a `ClientInterface`.