SimplePie 1.3.1 is now available! This is a bugfix release, which fixes a few bugs including a URI-parsing bug and an issue if DOMDocument doesn’t exist. In addition, the various methods deprecated in 1.3 now fail with an E_DEPRECATED
error rather than simply having the methods not exist. For a full list of what has been changed in this version, see the commits since 1.3, and the issues closed in 1.3.1. This is a recommended upgrade for all users.
SimplePie 1.3 is now available! This release is our first to be PHP 5-only, and this brings with it a strengthened code base. A huge number of bugs have been fixed, along with plenty of new features. SimplePie 1.3 is almost completely backwards compatible with 1.2, so you have no excuse not to use it!
One of the biggest changes with this release is the dropping of legacy support for PHP 4. SimplePie 1.3 requires at least PHP 5.2.0 to run, and we recommend 5.3+ (as some versions of 5.2 are known to be buggy).
With a new version comes some changes to the API, with features being added and legacy items being removed.
One of the most important changes is that the SimplePie
constructor no longer supports arguments. In the past, we’ve run in to a lot of issues with this feature, so we’ve decided to remove it. This may cause some breakages in your code, so watch out for this.
When using multifeeds with SimplePie, the SimplePie::error()
method now returns an array (indexed by the number URL which failed). This should make working with invalid feeds easier.
If you’re using a custom caching system, it’s now much easier to use. Rather than overriding SimplePie_Cache
, you can now register your handler and use the cache location option to pass options in. We’ve also bundled a Memcache-based cache handler with SimplePie (thanks to Matt Robenolt) to make it even easier to get SimplePie up and running.
This is just a summary of the changes we’ve made to SimplePie. To look at a full list of changes, head on over to the wiki or for the full change list, check out GitHub’s comparison view.
For anyone who has worked with the SimplePie codebase in the past, you’ll know it was a huge pain due to the entire project being in one file. With 1.3, we’ve split SimplePie up into one-class-per-file, enabling easy autoloading of the classes you need without needing to load them all. This means easier developing for us, and faster loading for you. A huge thanks must go to Drak from the Zikula project for the work on this.
If you’re one of the people who loved the monolithic file, don’t worry! We’ve baked a special compiled release which includes all the classes you need in a single file. If the compiled release is too big for you to handle, we’ve also baked a minified release which strips all the comments.
We’ve always prided ourselves on providing stellar documentation, and 1.3 is no different. Previously, an API reference was provided on the wiki, however this had occasionally fallen out of date, or not actually matched the code. With 1.3, we’re now generating this documentation directly from the PHPDoc comments in the code.
Head on over to the API documentation right now to see it! You can also use PHP-style URLs, so http://simplepie.org/api/SimplePie_Item
will redirect you to the correct page.
SimplePie 1.4 will focus on slimming down by removing legacy support for several features.
In SimplePie 1.2, due to PHP 4 support class properties were declared with the var
keyword, and access was restricted via the @access
keyword. With 1.3 came the move to PHP 5 and strict properties, however for backwards compatibility, these properties were left as var
. From 1.4 onwards, properties and methods with an @access private
tag will have their visibility changed to protected
. If you’re using any of these internal APIs, be aware that they will cease to be available. Proper methods are available for all pieces of data that you need to access, and we encourage you to move to those instead.
1.4 will also involve the splitting off of the HTTP handling. SimplePie will bundle Requests, however will have a clearly defined interface to implement your own HTTP handler.
We’ll also be attempting to increase our test coverage, with the aim to get up to at least 80% of the code covered by a test by 1.4.
With the release of 1.3 also begins our new release schedule. A new major version of SimplePie is planned to be released every 6 months, with 1.4 to be released in January 2013. This is a schedule we’ll be trying extremely hard to stick to, and we’d love to get your help in doing so. Pull requests on GitHub will always be welcomed with open arms, as are bug reports and feature requests.
Finally, I’d just like to personally thank all of you for using SimplePie. It’s a pleasure working on the project knowing that so many of you out there are using it. By far my favourite moment was when I accidentally pushed a piece of broken code up to GitHub, only to be alerted to it by a new issue on GitHub within minutes. You all make it worth every minute of my time.
So, thanks to everyone, and I’ll see you all here for a new release in 6 months!
For anyone who is using the latest development version of SimplePie (known as 1.3-dev), you might have noticed that the readme mentions SimplePie.compiled.php in the same vein as our previous simplepie.inc. However, in the past, you had to check out the entire repository just to build this.
I’m happy to announce that a pre-built version is now available at dev.simplepie.org. This version is rebuilt within 5 minutes of pushing to GitHub, so it will always be up-to-date with our current development version.
In addition, API documentation built from our PHPDoc comments is now available on dev.simplepie.org. This documentation is designed to give you a bit more of an insight into the SimplePie API, than the wiki. Don’t worry though, our wiki isn’t going anywhere any time soon!
If you encounter any problems, as usual, let us know via the issue tracker.
I’m excited to finally announce the immediate availability of SimplePie 1.2.1. This release fixes a few bugs, including a major URL parsing bug, where URLs with query strings were parsed incorrectly. For a full list of what has been changed in this version, see the commits since 1.2, and the issues closed in 1.2.1. This is a recommended upgrade for all users.
So now, a quick status update on the project. Our last blog post noted that we were ceasing development, mainly due to the lack of time we had to devote to the project. However, I am pleased to report that development has been continuing on GitHub. With the help of users and other developers, hacking has been taking place on our two main upcoming versions (1.2.1 and 1.3), with occasional development on ComplexPie, the future base of SimplePie 2.0.
The major version undergoing changes is the master
branch (1.3-dev). The major change so far is the restructuring of SimplePie into a more maintainable structure, with one file per class. Major thanks goes to Drak from the Zikula Foundation for undertaking the main body of work. All the classes have also been changed to use PHP 5 code, including proper visibility for methods and properties, and dropping any deprecated code. There are also a lot more unit tests, with more to come before release.
In addition, the one-dot-two
branch continues as the legacy PHP 4-compatible branch, with 1.2.1 hopefully our final release on the branch. Occasional bugfix releases will be made on this branch, but no major development is occurring here. New issues are always welcome!
Finally, if you’re reading this, the site has finally been migrated to a new server (thanks to Matt for hosting!). If any brokenness is noticed, please feel free to file a bug on the website bug tracker. That’s all for now, look forward to the release of 1.2.1 in the upcoming future, and thanks for using SimplePie!
A little over 5 years ago – July 20, 2004 to be exact – I posted the very first public version of SimplePie as a set of functions that sat on top of MagpieRSS, in an effort to make RSS parsing even easier and more accessible to PHP developers around the world. Since that time, SimplePie has become the de-facto RSS/Atom parsing software for PHP. The software is in use by hundreds of thousands of people all over the world, is integrated into more third-party software than I can keep track of, and has been used in everything from blogs and wikis to sites powered by some of the largest brands in the world.
A couple of years ago I co-founded my first company and that has ended up taking a large portion of my time. As part of that, I’ve also released a new open-source project called CloudFusion (formerly Tarzan) that is beginning to take the Amazon Web Services and Cloud Computing world by storm. Geoffrey has spent a lot of time in school, building tools to help the HTML 5 community, and now has a gig working for Opera. There quite simply isn’t much time for SimplePie anymore – for either of us.
We’ve tried to build a community around SimplePie – one where people can help each other, provide tips and tricks, record screencasts, and eventually take over the development of the project. Parts of this were successful while other parts were not. Geoffrey and I have had the pleasure of working alongside some smart, talented people over the years including Ryan McCue, Michael Shipley, Steve Minutillo and many others, but for whatever reason we never developed enough steam to keep it all going despite Geoffrey and my best efforts and other commitments.
So effective immediately, we are ceasing development of SimplePie and shutting down the project. We will shortly be pushing all code to GitHub. The mailing list will continue to serve users for the time being, but my sincerest hope is that someone will take up the charge to fork SimplePie, fix all of its issues, and continue on with this project that’s been such a huge part of my life for the past 5 years.
I’ll be around for a few more weeks to help ease the transition to GitHub and whatever community springs up around that. I’ll probably continue to keep an eye on the mailing list and help where I can, but that doesn’t mean that I’ll be able to answer everyone’s questions. Geoffrey and I sincerely appreciate all of the users we’ve had over the years, the kind words, and all of the cool Amazon wishlist purchases that have shown up on our doorsteps over the years. I hope someone else will take up the mantle for the RSS/Atom/PHP community like SimplePie and MagpieRSS before it.
SimplePie 1.2 is now available. This release adds a few features that have been requested often, especially caching in MySQL (instead of on the filesystem) and the ability to autodetect more than one feed. Furthermore, a large number of bugs have been fixed, a mixture of low-priority bugs found throughout 1.1’s release-cycle, and a few larger bugs found after 1.1.3’s release.
However, it removes support for hosts that were affected by the libxml2 issue in SimplePie 1.1.1 and below that run PHP versions prior to 5.1.0 (this is as we have a new workaround, which does not subtly change the feed). As a result, any host with a version of libxml2 of 2.7.0 or above with less than PHP 5.1.0 will be broken by this release (however, I expect this accounts for around zero hosts, as I expect those with an up-to-date libxml2 release will equally have an up-to-date PHP release). This leaves our support at better than SimplePie 1.1.1, and (theoretically, at least) worse than 1.1.2 and 1.1.3. Needless to say, this release is API-compatible with previous 1.x releases, so it should be as simple as a drop-in replacement. Feel free to check out the release notes for more details.
The intention after 1.2’s release is to move almost all development work to SimplePie 2 (an announcement concerning that is forthcoming), and as such, lower-priority bug fixes will be accepted into future 1.2.x releases. However, as is the final non-bugfix release of SimplePie 1, regressions are unacceptable, so all patches will have be reviewed by at least one release manager (as of writing, myself and Ryan Parman) and one developer (as of writing, the two RMs and Ryan McCue). One person cannot fulfil both roles for one patch.
Finally, as has been previously announced, SimplePie 2 will require (some as-of-yet undecided version of) PHP 5, so SimplePie 1.2 forms the final feature-release with support for PHP 4. PHP 4, has, however, been unsupported since 2007, so please encourage your host to upgrade (likewise, PHP 5 versions prior to PHP 5.2.10 are unsupported)!
We’re now supporting a technology called OpenID for comments. What does that mean for you? It means that you can sign-in and comment on our blog with your existing account from Google/Gmail, Yahoo!, Facebook, MySpace, Twitter, Windows Live, Hotmail, Flickr, AOL, Blogger, WordPress.com, and others!
If you already have a registered account on our blog for commenting, you can sign-in with your existing account. From there, you can (optionally) add a third-party account that you can login with instead.
That is all.
It would appear that this is the season for SimplePie screencasts! In the past two days, I’ve discovered a few new SimplePie-related screencasts, and I want to share them (and a couple of older ones) with you.
You can find even more tips, tricks, tutorials, and screencasts in the SimplePie wiki.
Although SimplePie Live! was a cool concept, and something that I would have liked to see be successful, I simply haven’t had the time to put into it for nearly a year and a half now. One of these days I’d like to relaunch it when I have more time and resources to put into it, because I believe it could be a useful tool if executed properly.
That being said, we’ll be shutting down the SimplePie Live! service in the next couple of weeks. This will be the only notice we’ll provide (which probably isn’t a big deal because there are nearly zero users). Instead, I would recommend either using SimplePie (for PHP) or a service like Google AJAX Feed API.
SimplePie 1.1.3 is now available (like 1.1.2, “core” plugin will be updated soon). This is a bugfix-only release that resolves the one major issue that 1.1.2 created (gzip decoding errors while using fsockopen()), and fully resolves the other major issue that 1.1.2 didn’t fully address (a workaround of a libxml2 bug).
Grab the latest release to upgrade!