SimplePie 1.9.0
26 September 2025
SimplePie version 1.9.0 is now available (major release).
Upgrading to SimplePie 1.9.0
SimplePie 1.9.0 can be upgraded to (or installed) using any of Installatron's products. Use Installatron's optional Automatic Update feature to automatically apply SimplePie updates as new versions are released, or use Installatron's Clone feature to duplicate an existing SimplePie install to test the 1.9.0 upgrade prior to applying it live. Get started managing your SimplePie installations with Installatron
What's New in SimplePie 1.9.0
- Constructor improvement by @ColonelMoutarde in #772
- Add type hints in all classes by @Art4 in #775
- Remove package phpdoc annotation by @jtojnar in #781
- Update to github actions/checkout@v3 by @Art4 in #783
- Use single constant for default HTTP Accept header by @Alkarex in #784
- Parse/Date: Comment out duplicate keys by @jtojnar in #787
- Clarify error type by @jtojnar in #786
- Cache/Memcache: Fix type annotation by @jtojnar in #788
- Misc: Fix get_build when overridden by @jtojnar in #789
- tests/Unit/Parser: Check microformat h-feed parsing by @jtojnar in #794
- SimplePie: Deprecate multifeed support by @jtojnar in #795
- Restriction: Turn relationship values into constants by @jtojnar in #796
- Replace the licence blurbs with SPDX comments by @jtojnar in #798
- Improve type annotations for data classes by @jtojnar in #797
- File: Fix permanent_url with multiple permanent redirects by @jtojnar in #812
- tests/CacheTest: Use existing SuccessException fixture by @jtojnar in #804
- Do not register the default class by @jtojnar in #806
- Locator: Fix type error when no extension by @jtojnar in #803
- Remove redundant qualified names by @jtojnar in #808
- Use more ::class constant instead of class-strings by @jtojnar in #805
- tests/Unit/SimplePieTest: Fix notices by @jtojnar in #809
- Parse/Date: Fix types and clean up by @jtojnar in #790
- Locator: add type hints by @jtojnar in #793
- SimplePie: Remove redundant instanceof by @jtojnar in #814
- Sanitize: Support passing curl_options by @jtojnar in #817
- tests/Unit/ParserTest: Skip when Mf2 library is not available by @jtojnar in #818
- IRI: Fix types by @jtojnar in #791
- tests/CacheTest: Do not use trigger_error to ensure method not called by @jtojnar in #821
- Cache/Psr16: work around invalid @throws annotation on PHP 7 by @jtojnar in #816
- tests/Unit/SimplePieTest: Fix duplicate array index by @jtojnar in #820
- ci: Run coding style checks by @jtojnar in #825
- tests/Integration/CachingTest: Do not access private properties through static by @jtojnar in #823
- tests: Do not use magic method for testing protected methods by @jtojnar in #824
- Item: Accept Sanitize object by @jtojnar in #827
- ci: Fix coding style by @jtojnar in #828
- Split SimplePie\File class into HTTP client and response by @Art4 in #774
- ci: Add PHPStan by @jtojnar in #811
- tests: Add type hints to data providers by @jtojnar in #813
- Fix TypeError in Sanitize::replace_urls due to a link without host by @jtojnar in #832
- Use idn_to_ascii function instead of idna_convert library by @jtojnar in #785
- Split SimplePie\File class into HTTP client and response by @jtojnar in #815
- Move code style check into own Github Actions job by @Art4 in #835
- Fixing issue with dead link in #839 by @theamoeba in #840
- Fix CI by @jtojnar in #841
- Raise PHPStan to level 6 by @jtojnar in #837
- Add support for PSR-18 HTTP clients by @Art4 in #777
- Enable test execution with PHPUnit 10 by @Art4 in #848
- refactor: drop call to xml_set_object() by @Girgias in #851
- ci: Fix coding style by @jtojnar in #853
- Fix typos by @szepeviktor in #865
- ci: Fix php-cs-fixer by @jtojnar in #862
- Fix PHPStan for PHP 7.3 by @Alkarex in #869
- PHPDoc avoid aliases for scalar types by @Alkarex in #868
- Extract long repeating sanitization bases into variable by @jtojnar in #871
- Fix CI for PHPStan 1.12 by @Alkarex in #878
- PHP 8.4 | Fix implicitly nullable parameters by @jrfnl in #880
- PHP 8.4 | Fix passing E_USER_ERROR to trigger_error() x 3 by @jrfnl in #881
- Composer: prevent a lock file from being created by @jrfnl in #887
- ci: Add PHP 8.4 by @jtojnar in #876
- Fix cache_expiration_time by @Alkarex in #883
- phpstan: Rename config to use dist suffix by @jtojnar in #889
- Gzdecode: Deprecate our gzip implementation by @jtojnar in #882
- IRI: Simplify parse_iri() by @jtojnar in #890
- SimplePie: Fix encode argument of strip_htmltags by @jtojnar in #894
- GH Actions: PHP 8.4 has been released by @jrfnl in #901
- FileClient: Merge HTTP headers from cURL options by @Alkarex in #912
- add development related config files to .gitattributes by @ziegenberg in #910
- Fix feeds encoded in UTF-16LE by @Alkarex in #916
- Rename HttpException to ClientException by @Art4 in #909
- Trim body for all paths by @Alkarex in #917
- HTTP: Remove redundant doc comments from Response implementations by @jtojnar in #920
- Misc: Deprecate unused functions by @jtojnar in #899
- tests/Integration: Add regression test for redirect chains by @jtojnar in #918
- PHPStan: Add extension for typing Registry::call() by @jtojnar in #892
- tests: Improve ClientsTest::testRedirectsChain by @jtojnar in #922
- Fix support for feeds with XML preample + DTD, entities by @Alkarex in #915
- Minor fix use DOCTYPE rss by @Alkarex in #924
- Fix absolutize URL for several cases by @Alkarex in #861
- Fix typo in docblock description by @IanDelMar in #925
- Fix parse_date() return type by @Alkarex in #926
- composer: Use default bin-dir by @jtojnar in #927
- Various cleanups by @jtojnar in #928
- ci: Remove mf2 dependency with PHP 8.4 by @jtojnar in #929
- SimplePie: Prepare PubSubHubbub for PSR-18 clients by @jtojnar in #838
- SimplePie: Restrict cache_name_function type by @jtojnar in #931
- File: reduce scope of whitespace trimming by @jtojnar in #919
- PHPStan level 8 by @grimmdude in #857
- Use correct language as identifier in Heredoc strings by @Alkarex in #933
- Bump GitHub Actions by @Alkarex in #932
- phpstan: Rename phpstan.neon.dist to phpstan.dist.neon by @jtojnar in #934
- PHP 8.5: Conditionally call deprecated functions by @TobiasBg in #937