at 2012-06-22
in Editorial
by friebe
(0 comments)
Nine years ago we released XP Framework, version 1.0.0 with the following change log:
. No more support for PHP smaller than 4.3.0 . There is now a common subclass for Errors and Exceptions called Throwable . An exceptions stacktrace is an array of lang.StackTraceElement objects . Exception::getStackTrace() returns this array and no longer a string . Removes Object::getName() which has been deprecated for a while now . Uses xp::registry to keep the global namespace free of bullshit Although we had already been using it in production since more than a year at that time (the "Initial revision" was on 2002-02-21), we decided not to give it a more or less "stable" version until June 22nd, 2003.
We've come a long way from there on - here's a recap with the most important milestones. In September 2003, we added a userland implementation of interfaces (using an implements() function), completed the reflection API in April 2004 with support for access modifiers, thrown exceptions, signature and return types (remember: this was pre-PHP 5!) by parsing the classes "by hand", adding static initializers in August of that year, and annotations in March 2005, a feature we started relying in various places as of that date. EASC made its debut in December 2005, the collections classes in 2006, the first APIs to write TCP/IP servers were made available later that year.
At the end of 2006, we published XP 5.0.0 and with it finally switched over to PHP 5!. We invested lots of thought into XAR files, added command line classes ("xpcli"s), added an FTP server implementation, adopted generics into the collections API in April 2007, revamped the class loading infrastructure in May, and added type-safe enums in August of the same year. In June 2008, we changed away from scripts starting with require('lang.base.php); to classes becoming the entry point and added the xp "runners". We also made it easier to set up the framework with a single line of shell code. In 2009, we added timezone support, and the web runners, and largely improved the I/O streams API. 2010 brought us compression support, zip files, hashing algorithms, and overlays.
Last year, 2011, we released XP 5.8.0, the first version of the current series, with improved generics, the ability to access protected members reflectively, extension methods, and added the XP Compiler, marking a huge step. In mid-April that year, we decided to move our codebase to GitHub (thanks Igor and Rene!), and began looking into adopting PHP 5.3 and PHP 5.4 features. Unfortunately, we also had to start working around PHP bugs and deficiencies a lot, be it mysqlnd not supporting old MySQL servers and authentication, broken crypt() methods and/or other oddities.
Today, we are looking at a stable and reliable framework with support for a large bandwith of PHP versions and operating systems, and onto an exciting roadmap for the 5.8-SERIES, but also on to XP 5.9, which brings modularity, PHP namespaces support, array shorthands, parameter annotations, IoC support, and more!
We can see the advantages of using an SDK-like framework by looking at examples like XP-JS, which compiles XP language code to JavaScript to be run on NodeJS.
What exactly the future will bring will be seen - and announced here
|
Subscribe
You can subscribe to the XP framework's news by using RSS syndication.
CategoriesNews General PHP5 Announcements RFCs Further reading Examples Editorial EASC Experiments Unittests Databases 5.8-SERIES Unicode Language 5.9-SERIES
RelatedFind related articles by a search for «1.0.0».
|