Monday, September 25. 2006PHP6: News from the front...While everyone else has been busily gearing up for the release of PHP 5.2 and the new features that are going to come with it, ☭ (the artist formerly known as Andrei) and his small band of merry babelonians (yours truly included) have been making inroads on preparing PHP6 for a preview release. In the past week we've managed to roughly double the number of builtin functions (those which are part of the main distribution) that have been reviewed for unicode safety, either flagging them as good or upgrading their functionality. Some of the work that's been done recently has been "low-hanging fruit" (the bcmath extension for example) requiring nothing but adding a U to the function prototype. Other areas, like filename handling, required some very minor additions to handle downcoding where run-time conversion isn't necessarily appropriate. Meanwhile a few changes (e.g. stream_get_contents(), popen()) involved more careful updates to core functionality in order to handle unicode handling without breaking that precious backward compatability. While I was poking around old files during my part of this endeavor, I came across a couple of old favorites which I'd mentioned in my Good old times post back in April. Looking back on this old code I winced a couple times (who isn't a little ashamed of old code, no matter how clean it is). What the heck, this is a major version bump, perfect time for some spring cleaning. The functions aren't going to run any faster or do anything all that better, but they'll be a little prettier to look at later on. Score one for style... So here we are. Headlong into a 22% completion of the function conversion, and a good half-way towards completing the project as a whole (most of the work that's been done up to this point has been within the core, working on the functions that the functions call). I encourage anyone who's even remotely interrested in unicode support to start playing with snapshots. Or even better, open up the source files and help out the conversion effort. If you don't know the PHP API well enough to make sense of it, I hear there's a good book on the topic out there... The streams API isn't quite complete yet, but it's suitable for the vast majority of tasks. XML and DB handling are the two big "to-do"s at this point as far as conversion goes. In the "non-unicode" related world, you probably know by now that the magic's gone. Magic quotes that is, along with register globals, safe mode, register long arrays, and using variables with break/continue. The massively controversial goto statement (you either love it or you hate it) is in, along with allow_url_include (as a separate setting from allow_url_fopen), and a set of internal callback hooks for thread intialization and destruction (you probably won't know what this is, but extension writers are happy to see it). For a more detailed list of what's new in PHP6 look, as always, to the NEWS file. Trackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
Also the documentation effort for this unicode conversion needs a lot of help! See the RFC on this topic here:
http://doc.php.net/php/rfc/rfc-proposal-show.php?id=6 (allow_url_include is in 5.2 too)
Perhaps I should have a band, Andrei and the Merry Babylonians. Or, even better, ☭ and the Merry Babylonians.
"you probably know by now that the magic's gone"
Hehe, nicely put Will be nice to see, the PHP6 preview as well all the betas and Rc's of upcoming PHP versions, publicited clearly on the PHP homepage ( of course, stated that is beta code).
currenlty this process is done via the qa.php.net which is not really well known for most people. Andrei wants to see a preview release before the end of the year. If the next couple months go as expected, then hitting that milestone is a definately possibility.
|
Buy My BookFavoritesPieces of string
Lies & References Opcodes Compiled Variables TSRMLS_CC Extension Writing Part 1 Part 2a Part 2b Part 3 Syndicate This BlogCategoriesQuicksearch |
Save to Del.icio.us
Save to MyWeb
Digg This
Flickr












![Validate my RSS feed [Valid RSS 2.0]](/uploads/valid-rss.png)
![Validate my Atom feed [Valid Atom 1.0]](/uploads/valid-atom.png)