Changelog
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.
Added
- 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
Changed
- Use
idn_to_ascii function instead of idna_convert library (requires intl extension or a polyfill) by @jtojnar in #785
Removed
- Third-party
idna_convert library is no longer part of the repository by @jtojnar in #785
Deprecated
- The method
SimplePie\SimplePie::set_file() is deprecated, use SimplePie\SimplePie::set_http_client() or SimplePie\SimplePie::set_raw_data() instead
- The method
SimplePie\Sanitize::pass_file_data() is deprecated, use SimplePie\Sanitize::set_http_client() instead
- Passing multiple URLs to
SimplePie\SimplePie::set_feed_url() is deprecated. You can create separate SimplePie instance per feed and then use SimplePie::merge_items() to get a single list of items. (#795)
1.8.0 - 2023-01-20
Added
- 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 a callable to customize the cache key in #762
- New interface
SimplePie\RegistryAware to inject the Registry instance into classes created by Registry 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
Changed
- 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
Fixed
- 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 as int instead of float by @Art4 in #763
- The method
SimplePie\SimplePie::get_image_width() returns the pixel number as int instead of float 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
Deprecated
- The method
SimplePie\Misc::array_merge_recursive() is deprecated, use native array_replace_recursive() instead
- The method
SimplePie\SimplePie::set_cache_name_function() is deprecated, use SimplePie\SimplePie::set_cache_namefilter() instead
- The method
SimplePie\SimplePie::set_cache_location() is deprecated, use SimplePie\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 of SimplePie\SimplePie::set_cache() instead
- The class
SimplePie\Cache\DB is deprecated, use implementation of Psr\SimpleCache\CacheInterface instead
- The class
SimplePie\Cache\File is deprecated, use implementation of Psr\SimpleCache\CacheInterface instead
- The class
SimplePie\Cache\Memcache is deprecated, use implementation of Psr\SimpleCache\CacheInterface instead
- The class
SimplePie\Cache\Memcached is deprecated, use implementation of Psr\SimpleCache\CacheInterface instead
- The class
SimplePie\Cache\MySQL is deprecated, use implementation of Psr\SimpleCache\CacheInterface instead
- The class
SimplePie\Cache\Redis is deprecated, use implementation of Psr\SimpleCache\CacheInterface instead
- The interface
SimplePie\Cache\Base is deprecated, use interface Psr\SimpleCache\CacheInterface instead
Removed
- 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
Added
- New class
SimplePie\SimplePie as a replacement for class SimplePie
- New method
SimplePie\Misc::get_default_useragent() as a replacement for constant SIMPLEPIE_USERAGENT
Changed
- 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
Fixed
Deprecated
- The class
SimplePie is deprecated, use class SimplePie\SimplePie instead
- The use of PSR-0 classes (all classes without namespaces in the
library directory) is deprecated, use PSR-4 classes (see src directory) instead
- The constant
SIMPLEPIE_BUILD is deprecated, use SimplePie\Misc::get_build() instead
- The constant
SIMPLEPIE_USERAGENT is deprecated, use SimplePie\Misc::get_default_useragent() instead
- All global constants are deprecated, use the constants from the class
SimplePie\SimplePie instead (e.g. replace SIMPLEPIE_VERSION with SimplePie\SimplePie::VERSION)
1.6.0 - 2022-04-21
Added
- New methods
SimplePie::rename_attributes() and SimplePie_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
Changed
- GH Actions: version update for ramsey/composer-install by @jrfnl in #713
Fixed
- 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
Changed
- Update CHANGELOG.md, follow keepachangelog format by @Art4 in #709
Fixed
- 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 to is_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 to writable 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
elses 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 for SimplePie 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() and get_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 to SimplePie. #394
- Added the
force_cache_fallback() method to SimplePie to allow an expired cache to be used when a feed is unavailable. #389
- Added Memcached. #386
- Added
set_curl_options() method to SimplePie 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 in SimplePie_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_*() and enable_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() and Simple_ie_Misc->element_implode(). #348
- Improved support, feed and authorship discovery, and parsing for microformats. #348
rss:pubDate is now used over atom:updated when determining the posting date. #288
- Simplified the use of
mtime() and touch(). #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