After retiring from SimplePie development in 2009, the project more or less went into maintenance mode. While I am thankful to the folks who have contributed to its development over the last 8 years, it’s time for a reboot.
SimplePie NG is a modern, next-generation PHP package for working with syndication feeds. It is being re-written from the ground-up to take advantage of the changes that have happened in the PHP community since the SimplePie project was started back in 2004.
The Plan
I’ve spent several years thinking about how I would do things differently if I were to start the project over from scratch — including thinking about all the things we did that turned out to be a terrible idea in retrospect.
The things to avoid next time
-
Odeo integration.
-
Integration with the various social bookmarking services du jour.
-
Trying to do everything and build everything from scratch.
The things to do better this time around
-
Embrace the PSRs (logging, caching, HTTP messaging).
-
Leverage a middleware-based system for adding support for new formats. This will allow people to write custom middleware that is Composer-installable.
-
Take advantage of the modern features of PHP. Notably, we are focusing on targeting professional-grade software engineers, and building great software.
-
Focusing on performance, memory usage, specification compliance, feed compatibility, and testing from the very beginning.
-
Supporting RSS, Atom, and the new JSON Feed out of the box.
Where can I get it?
I’m still in the “big bang” (e.g., iteration zero, proof-of-concept) phase. I’m implementing support for Atom 1.0 first (since it is the best-specified) and leveraging XPath expressions to radically improve parsing performance. As such, I must say…
Highly experimental. Don’t use this.
I’m working on this project outside of work hours, so it will probably be a few months before I tag an alpha release. I want to add the core Atom, RSS, and JSON Feed support before I tag an alpha release.
However, if there are features you want to see, or want to dabble with the code a bit, I encourage you to come check things out in GitHub.