All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- New method
SimplePie\SimplePie::set_http_client()
for providing PSR-18 HTTP client and PSR-17 factories by @Art4 in #777 - New method
SimplePie\Locator::set_http_client()
for providing PSR-18 HTTP client and PSR-17 factories by @Art4 in #777 - New method
SimplePie\Sanitize::set_http_client()
for providing PSR-18 HTTP client and PSR-17 factories by @Art4 in #777
- Use
idn_to_ascii
function instead ofidna_convert
library (requiresintl
extension or a polyfill) by @jtojnar in #785
- Third-party
idna_convert
library is no longer part of the repository by @jtojnar in #785
- The method
SimplePie\SimplePie::set_file()
is deprecated, useSimplePie\SimplePie::set_http_client()
orSimplePie\SimplePie::set_raw_data()
instead - The method
SimplePie\Sanitize::pass_file_data()
is deprecated, useSimplePie\Sanitize::set_http_client()
instead - Passing multiple URLs to
SimplePie\SimplePie::set_feed_url()
is deprecated. You can create separateSimplePie
instance per feed and then useSimplePie::merge_items()
to get a single list of items. (#795)
1.8.0 - 2023-01-20
- New method
SimplePie\SimplePie::set_cache()
for providing a PSR-16 cache implementation by @Art4 in #742 - New method
SimplePie\SimplePie::set_cache_namefilter()
for customize the cache key in #762 - New class
SimplePie\Cache\CallableNameFilter
to provide acallable
to customize the cache key in #762 - New interface
SimplePie\RegistryAware
to inject theRegistry
instance into classes created byRegistry
by @Art4 in #760 - update PHP versions in GH Actions workflows by @jrfnl in #767
- Registry: Allow using class-strings instead of magic strings by @jtojnar and @Art4 in #766
- Clarify branching strategy by @Art4 in #751
- Use native array_replace_recursive() by @Alkarex in #749
- PHP 7.2 or newer is now required by @Art4 in #743
- Parse\Date: Clean up regex structure by @jtojnar in #765
- Declare strict_types=1 in every file by @Art4 in #763
- Item::get_date(): fix return type on unparsable date by @jtojnar in #753
- Fix error handling for PHP 8.1 by @cedric-anne in #747
- The method
SimplePie\SimplePie::get_image_height()
returns the pixel number asint
instead offloat
by @Art4 in #763 - The method
SimplePie\SimplePie::get_image_width()
returns the pixel number asint
instead offloat
by @Art4 in #763 - No URL Decode for enclosure links by @Alkarex in #768
- Sanitize thumbnail URL by @Alkarex in #770
- Fix case of multiple RSS2.0 enclosures by @Alkarex in #769
- Fix broken phpdoc references by @jtojnar in #771
- The method
SimplePie\Misc::array_merge_recursive()
is deprecated, use nativearray_replace_recursive()
instead - The method
SimplePie\SimplePie::set_cache_name_function()
is deprecated, useSimplePie\SimplePie::set_cache_namefilter()
instead - The method
SimplePie\SimplePie::set_cache_location()
is deprecated, useSimplePie\SimplePie::set_cache()
instead - The method
SimplePie\SimplePie::force_cache_fallback()
is deprecated, expired cache will not be used anymore - The class
SimplePie\Cache
is deprecated, use implementation ofSimplePie\SimplePie::set_cache()
instead - The class
SimplePie\Cache\DB
is deprecated, use implementation ofPsr\SimpleCache\CacheInterface
instead - The class
SimplePie\Cache\File
is deprecated, use implementation ofPsr\SimpleCache\CacheInterface
instead - The class
SimplePie\Cache\Memcache
is deprecated, use implementation ofPsr\SimpleCache\CacheInterface
instead - The class
SimplePie\Cache\Memcached
is deprecated, use implementation ofPsr\SimpleCache\CacheInterface
instead - The class
SimplePie\Cache\MySQL
is deprecated, use implementation ofPsr\SimpleCache\CacheInterface
instead - The class
SimplePie\Cache\Redis
is deprecated, use implementation ofPsr\SimpleCache\CacheInterface
instead - The interface
SimplePie\Cache\Base
is deprecated, use interfacePsr\SimpleCache\CacheInterface
instead
- ROADMAP.md removed by @Art4 in #748
- remove check for E_USER_DEPRECATED definition by @Art4 in #750
- remove broken BC code in Registry by @Art4 in #764
1.7.0 - 2022-09-30
- New class
SimplePie\SimplePie
as a replacement for classSimplePie
- New method
SimplePie\Misc::get_default_useragent()
as a replacement for constantSIMPLEPIE_USERAGENT
- Do not use magic values for state machine state by @jtojnar in #735
- Use PSR-4 classes in Registry by @Art4 in #736
- GH Actions: run tests against PHP 8.2 by @jrfnl in #739
- Change code style to PSR-12 by @Art4 in #738
- Fix status_code type by @Alkarex in #728
- Fix parsing of HTTP Links by @Alkarex in #729
- Fix using the best base link for an item content by @Alkarex in #744
- Fix .editorconfig regression by @Alkarex in #745
- The class
SimplePie
is deprecated, use classSimplePie\SimplePie
instead - The use of PSR-0 classes (all classes without namespaces in the
library
directory) is deprecated, use PSR-4 classes (seesrc
directory) instead - The constant
SIMPLEPIE_BUILD
is deprecated, useSimplePie\Misc::get_build()
instead - The constant
SIMPLEPIE_USERAGENT
is deprecated, useSimplePie\Misc::get_default_useragent()
instead - All global constants are deprecated, use the constants from the class
SimplePie\SimplePie
instead (e.g. replaceSIMPLEPIE_VERSION
withSimplePie\SimplePie::VERSION
)
1.6.0 - 2022-04-21
- New methods
SimplePie::rename_attributes()
andSimplePie_Sanitize::rename_attributes()
allow renaming attributes by @math-GH in #717 - Add audio, video @src elements/attribute for URL resolution by @rdalverny in #716
- Added new namespaced aliases and PSR-4 support for every class by @Art4 in #711
- Add .editorconfig by @Alkarex in #724
- Upload compiled file as release asset by @Art4 in #725
- GH Actions: version update for ramsey/composer-install by @jrfnl in #713
- Bugfix in MySQL cache by @Art4 in #720
- Re-enable xml:base for all supported RSS formats by @Alkarex in #723
1.5.8 - 2021-12-24
- Update CHANGELOG.md, follow keepachangelog format by @Art4 in #709
- Fix a small typo in the error() function Docblock by @audrasjb in #712
- Fix/708 version bump for constant
SIMPLEPIE_VERSION
for 1.5.8 release by @faisal-alvi in #710
1.5.7 - 2021-12-19
- Fix PHP8 crash due to insufficient isset test by @Alkarex in #670
- gitignore tests by @Alkarex in #671
- Reduce memory when parsing large feeds by @Alkarex in #672
- PHP8 catch ValueError for loadHTML() by @Alkarex in #673
- Provide access to HTTP status code by @Alkarex in #674
- Fix wrong type hint by @Alkarex in #678
- Force HTTPS for selected domains by @Alkarex in #676
- Prevent cache pollution by @Alkarex in #675
- Fix typo in comment by @Alkarex in #680
- Remove HTTP credentials in HTTP Referer by @Alkarex in #681
- CI: switch to GH Actions by @jrfnl in #688
- PHP 8.1: fix "passing null to non-nullable" deprecation notice by @jrfnl in #689
- Tests: PHPUnit cross-version compatibility by @jrfnl in #690
- Tests: use strict assertions by @jrfnl in #692
- CacheTest: handle different exceptions PHP cross-version by @jrfnl in #691
- GH Actions: don't allow builds to fail on PHP 8.0 or 8.1 by @jrfnl in #693
- Tests: use the correct parameter order by @jrfnl in #694
- PHPUnit: update configuration by @jrfnl in #696
- fix: better deal with proxy returning proxy headers (in response to cURL's Proxy-Connection header) by @shunf4 in #698
- Handle multiple Link headers by @voegelas in #700
- PHP 8.2: explicitly declare properties by @jrfnl in #705
- New Contributor: @shunf4 made their first contribution in #698
- New Contributor: @voegelas made their first contribution in #700
1.5.6 - 2020-10-14
- PHP 8.0: prevent ValueError for invalid encoding #657
- Travis: test against more recent PHP versions #653
- PHP 8.0: handle removal of get_magic_quotes_gpc() #654
- PHP 7.4/8.0: curly brace array access deprecated & removed #655
- PHP 8.0: required parameters are no longer allowed after optional parameters #656
- Fix permanent_url for HTTP 301 #660
- Fix typo in MIME type in Content_Type_Sniffer #661
1.5.5 - 2020-05-01
- Ensure that feeds retrieved with
force_feed
do not share the same cache as those retrieved without. #643 - Removed references to removed PHP directives and some PHP < 5.6 checks. #645
- Corrected incorrect alumni name. #638
1.5.4 - 2019-12-17
- PHP 5.6 or newer is now required. #625
- Fixed invalid docblock parameter types #633
- Added support for German short forms for weekdays and months. #632
- PHP 7.4 support: Fixed instances of accessing array offset on null type values. #628
- Return an effective feed URL when asking for non-permanent
subscribe_url
. #627
1.5.3 - 2019-09-22
- Replaced
pow()
call with**
operator (micro performance optimization). #622 - Match links containing
feed
in the Locator class. #621 - PHP 7.4 support: Ensure the proper argument order for
implode()
calls. #617 - Added support for Russian dates. #607
- Preemptively changed
is_writeable()
calls tois_writable()
in case the former is deprecated in PHP. #604
1.5.2 - 2018-08-02
- Added support for PHPUnit 6. #565
- Added PHP module requirements to Composer. #590
- Added support for Redis password and database. #589
- Changed the spelling of
writeable
towritable
within inline documentation. #586 - Fixed various issues in the test suite and Travis. #576
- Removed ambiguous tests failing on
usort()
in PHP 7. #578 - Simplified logic for some function returns. #573
- Fixed inline documentation for return value types for accuracy. #570
- Fixed Travis to run
composer install
. #567 - Removed unnecessary
else
s when a value has already been returned. #566 - Fixed a bug where URL fragments are included when
SimplePie_File
normalizes URLs when really old versions of cURL are used. #564 - Updated
SimplePie_Locator
to respect cURL options specified. #561
1.5.1 - 2017-11-17
- Fixed photos so they are not added if the URL is empty. #530
- Fixed issues with retrieving feeds from behind a proxy. #512/#548
- Updated favicon URL in
get_favicon()
. #525 - Fixed inline documentation typo. #540
- Removed extra closing
<a>
tag. #537 - Removed and updated feed URLs in the demo. #535
- Improvements to microformat feed parsing. #533
- Switched from regex to xpath for microformats discovery. #536
- Update the registry if the Sanitize class has been changed. #532
- Changed the sanitization type for author and category back to text from HTML. #531
1.5 - 2017-04-17
- Introduced
SimplePie_Category->get_type()
for retrieving category type. #492 - Added
$enable_exceptions
to the class property declarations forSimplePie
class. #504 - Titles are now parsed for ATOM10 enclosure links. #507
$item->get_id()
can now be forced to return the supplied ID instead of generating a new one. #509
1.4.3 - 2016-11-26
- Removed support for PHP 5.2. #469
- Added support for the PHP
UConverter
class. #485 - PHP 7.1 Support: Fixed PHP error when trying to use a non-numeric value in
round()
. #458 - PHP 7 Support: Fixed deprecated message for old style constructors. #489
- Fixed the error message shown when a feed has an empty body. #487
- Added an error message when the XML or PCRE PHP extensions are missing. #468
- Check the result of sanitize before returning in
get_content()
andget_description()
. #494 - Use
saveHTML()
to fix issues with non UTF-8 characters. #470 - Stop passing compressed data through
trim()
. #455 - Refactored the UTF-8 conversion error message. #467
- Updated the readme file. #486
- Added command line support for compayibility test. #481
- Added PHP 7.1 to the testing matrix. #462
- Use the latest HHVM version in testing (3.15.2). #480
- Added PHPUnit as a
dev-dependency
in Composer. #463 - Added
mf2/mf2
as a suggestion in Composer for use with microformats. #491 - Fixed misspelled occurrences of "separated". #459
- Improvements to the compatibility test and error messages. #488
1.4.2 - 2016-06-14
- Fixed a bug with IRI parsing.
- More cleanly separates discovery of microformats and parsing when php-mf2 is not present.
1.4.1 - 2016-06-02
- Fixed inconsistent hash results in
SimplePie_Item->get_id()
. - Leading and trailing whitespace is now trimmed from XML feed content to prevent errors. #445
- Improved support for microformat feeds.
1.4.0 - 2016-04-25
- Dropped support for PHP 5.2. #348
- Serialized data is now used for hashing in
SimplePie_Item->get_id()
. #348 - Added support for PHP 5.5 and 5.6. #348
- Added the
add_attributes()
method toSimplePie
. #394 - Added the
force_cache_fallback()
method toSimplePie
to allow an expired cache to be used when a feed is unavailable. #389 - Added Memcached. #386
- Added
set_curl_options()
method toSimplePie
to allow custom options. #348 - Added Redis Caching. #348
- Added the CEST timezone. #380
- Added support for HTTP 301 Moved Permanently. #348
- Added support for
application/x-rss+xml
inSimplePie_Locator
. #348 - Added photo de-duping in microformats. #348
- Added decoding for special characters in MAYBE_HTML. #400
- Added
SimplePie_Exception
for internally reporting errors. Also, use this to show an error when trying to load the class instead of causing a failure. #241 - Added sanitization of the
</html>
and</body>
tags. #348 - Added support for media thumbnails through
SimplePie_Item->get_thumbnail()
. #348 - Added the
feed_url
to a returned error message. #348 - Added cache purging after a specified period of time when using MySQL cache. #329
- Added backwards compatibility for removed
subscribe_*()
andenable_xml_dump()
methods. #348 - Re-added the deprecated
get/set_favicon()
methods for backwards compatibility. - Charsets are now compared without case sensitivity to avoid duplicates. #352
- Fixed encoding of ampersands in
SimplePie->subscribe_url()
. #348 - The feed URL is now updated based on the URL returned by cURL. #348
- Explicitly use UTF-8 in
SimplePie_Misc->get_element()
andSimple_ie_Misc->element_implode()
. #348 - Improved support, feed and authorship discovery, and parsing for microformats. #348
rss:pubDate
is now used overatom:updated
when determining the posting date. #288- Simplified the use of
mtime()
andtouch()
. #403 - All items are now forced to have a timestamp. #348
- Fixed typo in the date parser that incorrectly identified September as month 8. #348
- Fixed backwards compatibility with cache subclasses. #243
- Fixed a bug where the updated date was not fetched correctly. #239
- Fixed the datatype for
items.data
to be more appropriate in when using MySQL cache. #302 - Fixed cURL not failing when the server returns an error. #425
- Fixed an error caused when trying to instantiate a
SimplePie_File
object with a bad URI. #272 - Fixed a PHP notice that occurs when a date starts with
(
. #348 - Fixed uninitialized string offeset PHP notices. #353
- Fixed call to non-existent property in Memcache. #311
- Fixed a bug where MySQL statements were not being passed through
prepare()
. #348 - Fixed an instance where an error message in
SimplePie
was not being triggered correctly. #348 - Fixed a bug with Russian feeds. #348
- Fixed an issue with memory leaks. #287
- Fixed use of
DOMElement
as array. #315 - Improved the error message when a feed cannot be found. #348