3 All notable changes to this project will be documented in this file, in reverse chronological order by release.
9 - [#52](https://github.com/zendframework/zend-feed/pull/52) adds support for PHP
12 - [#53](https://github.com/zendframework/zend-feed/pull/53) adds a number of
13 additional aliases to the `Writer\ExtensionPluginManager` to ensure plugins
14 will be pulled as expected.
16 - [#63](https://github.com/zendframework/zend-feed/pull/63) adds the feed title
17 to the attributes incorporated in the `FeedSet` instance, per what was already
20 - [#55](https://github.com/zendframework/zend-feed/pull/55) makes two API
21 additions to the `StandaloneExtensionManager` implementations of both the reader
22 and writer subcomponents:
24 - `$manager->add($name, $class)` will add an extension class using the
26 - `$manager->remove($name)` will remove an existing extension by the provided
39 - [#52](https://github.com/zendframework/zend-feed/pull/52) removes support for
44 - [#50](https://github.com/zendframework/zend-feed/pull/50) fixes a few issues
45 in the PubSubHubbub `Subscription` model where counting was being performed on
46 uncountable data; this ensures the subcomponent will work correctly under PHP
53 - [#27](https://github.com/zendframework/zend-feed/pull/27) adds a documentation
54 chapter demonstrating wrapping a PSR-7 client to use with `Zend\Feed\Reader`.
55 - [#22](https://github.com/zendframework/zend-feed/pull/22) adds missing
56 ExtensionManagerInterface on Writer\ExtensionPluginManager.
57 - [#32](https://github.com/zendframework/zend-feed/pull/32) adds missing
58 ExtensionManagerInterface on Reader\ExtensionPluginManager.
66 - [#38](https://github.com/zendframework/zend-feed/pull/38) dropped php 5.5
71 - [#35](https://github.com/zendframework/zend-feed/pull/35) fixed
72 "A non-numeric value encountered" in php 7.1
73 - [#39](https://github.com/zendframework/zend-feed/pull/39) fixed protocol
74 relative link absolutisation
75 - [#40](https://github.com/zendframework/zend-feed/pull/40) fixed service
76 manager v3 compatibility aliases in extension plugin managers
82 - [#21](https://github.com/zendframework/zend-feed/pull/21) edits, revises, and
83 prepares the documentation for publication at https://zendframework.github.io/zend-feed/
95 - [#20](https://github.com/zendframework/zend-feed/pull/20) makes the two
96 zend-servicemanager extension manager implementations forwards compatible
97 with version 3, and the overall code base forwards compatible with zend-stdlib
100 ## 2.6.0 - 2015-11-24
104 - [#13](https://github.com/zendframework/zend-feed/pull/13) introduces
105 `Zend\Feed\Writer\StandaloneExtensionManager`, an implementation of
106 `Zend\Feed\Writer\ExtensionManagerInterface` that has no dependencies.
107 `Zend\Feed\Writer\ExtensionManager` now composes this by default, instead of
108 `Zend\Feed\Writer\ExtensionPluginManager`, for managing the various feed and
109 entry extensions. If you relied on `ExtensionPluginManager` previously, you
110 will need to create an instance manually and inject it into the `Writer`
112 - [#14](https://github.com/zendframework/zend-feed/pull/14) introduces:
113 - `Zend\Feed\Reader\Http\HeaderAwareClientInterface`, which extends
114 `ClientInterface` and adds an optional argument to the `get()` method,
115 `array $headers = []`; this argument allows specifying request headers for
116 the client to send. `$headers` should have header names for keys, and the
117 values should be arrays of strings/numbers representing the header values
118 (if only a single value is necessary, it should be represented as an single
120 - `Zend\Feed\Reader\Http\HeaderAwareResponseInterface`, which extends
121 `ResponseInterface` and adds the method `getHeader($name, $default = null)`.
122 Clients may return either a `ResponseInterface` or
123 `HeaderAwareResponseInterface` instance.
124 - `Zend\Feed\Reader\Http\Response`, which is an implementation of
125 `HeaderAwareResponseInterface`. Its constructor accepts the status code,
126 body, and, optionally, headers.
127 - `Zend\Feed\Reader\Http\Psr7ResponseDecorator`, which is an implementation of
128 `HeaderAwareResponseInterface`. Its constructor accepts a PSR-7 response
129 instance, and the various methdos then proxy to those methods. This should
130 make creating wrappers for PSR-7 HTTP clients trivial.
131 - `Zend\Feed\Reader\Http\ZendHttpClientDecorator`, which decorates a
132 `Zend\Http\Client` instance, implements `HeaderAwareClientInterface`, and
133 returns a `Response` instance seeded from the zend-http response upon
134 calling `get()`. The class exposes a `getDecoratedClient()` method to allow
135 retrieval of the decorated zend-http client instance.
147 - [#5](https://github.com/zendframework/zend-feed/pull/5) fixes the enclosure
148 length check to allow zero and integer strings.
149 - [#2](https://github.com/zendframework/zend-feed/pull/2) ensures that the
150 routine for "absolutising" a link in `Reader\FeedSet` always generates a URI
152 - [#14](https://github.com/zendframework/zend-feed/pull/14) makes the following
153 changes to fix behavior around HTTP clients used within
154 `Zend\Feed\Reader\Reader`:
155 - `setHttpClient()` now ensures that the passed client is either a
156 `Zend\Feed\Reader\Http\ClientInterface` or `Zend\Http\Client`, raising an
157 `InvalidArgumentException` if neither. If a `Zend\Http\Client` is passed, it
158 is passed to the constructor of `Zend\Feed\Reader\Http\ZendHttpClientDecorator`,
159 and the decorator instance is used.
160 - `getHttpClient()` now *always* returns a `Zend\Feed\Reader\Http\ClientInterface`
161 instance. If no instance is currently registered, it lazy loads a
162 `ZendHttpClientDecorator` instance.
163 - `import()` was updated to consume a `ClientInterface` instance; when caches
164 are in play, it checks the client against `HeaderAwareClientInterface` to
165 determine if it can check for HTTP caching headers, and, if so, to retrieve
167 - `findFeedLinks()` was updated to consume a `ClientInterface`.