Php Internals Summary - June 5-9th

I was reading slashdot (yes I was REALLY bored) and came across this article explaining how php is turning ten. Then I read down into the comments (really bored, remember?) and was absolutely surprised to see that the general public has no way of keeping up with what's going on in PHP development.

The biggest problem is there is only one way of keeping up - reading the mailing lists - which happens to be something I do rather religiously, because I develop on windows and I NEED to know when they've fixed the omnipresent bugs that seem to consistently make developing on windows a pain in the ass. That and I'm curiosity incarnate.

Anyway, so after hearing..err...reading comments/complaints about "what is happening with php" and "when do we get database abstraction" (PDO people - php data objects) and "what is planned for the future"...and realizing I know the answers to these questions simply because I like to read the mailing lists...

Behold - your first (at least) weekly update on php-internals and what the future is brewing for php.

Later I may add additional lists ( I also love to read pecl, and occasionally pear, although the infighting there gives me headaches).

It all started on June 3rd with a rather innocuous post by Andi Gutmans with a little summary at the end

So I envision:
End of June - PHP 5.1. Main feature PDO, Improved ZEII and other improvements.
Q3.2005 - Beta of PHP 5.5/6.0 featuring Unicode support.

Now, I've been using 5.1 snaps and let me tell you, they're so much faster and there are so many improvements over 5.0 that I haven't looked back - so I was EXTREMELY excited to see this. In addition I hadn't heard anything about php 5.5 and the unicode support on the way in - but I was even more excited to see this coming. Here's the work the guys have been doing for unicode support. (cue happy cheers)

Greg Beaver - the resident Pear Installer guru who has been doing a TON of work on pear chimed in immediately with a desire to add a stable PEAR 1.4.0 to the php 5.5 release mix.

He also talked about the the PHP_Archive he and Davey Shafik have been working on - it's basically like jar but for php - and would allow pear to be distributed in a single file...along with a lot of other apps as well. It's one of the things in pear I'm waiting to mature - but looking forward to.

The beginning of this conversation was latched onto the tail end of a discussion on how php missed google's summer of code - and they were more than a little peeved not to be notified...but that's another story.

Anyway, back to Andi and his little 5.1 push... That little post started up a firestorm though.

Magnus Määttä introduced the idea of what he wanted in php 5.1 - Sara Goleman's much maligned and loved goto patch.

There were over 70 posts that day in the 5.1 thread - on and on and on about goto is good, bad, or otherwise, and also dragging in the idea of adding ifsetor again (me, I just use ternary so much for that I don't even have to look it up anymore).

Buried in the (very loud) noise was a rather nice post about unicode in php - and a link to an article on the subject.

Also somewhere amoung the crazy thread rasmus threw in his two cents about the get/post filter hooks which have been in place for awhile in php5 - there was an earlier discussion about built in filtering in php - me, I just need a strip_tags that allows me to say exactly what attributes and tags to leave and throw everything else away :)

The framework for it is in place. I'll try to get some actual filters
implemented this week. It's fine as a pecl extension for now. The
hooks have been in place for a while, so it shouldn't hold up 5.1.

Derick Rethans mentioned the new date stuff- there's a great pecl date extension - I'm not sure if this is what they were talking about or if there were additional fixes, but

> Is there progress with the new date stuff? I'd really like to have dates
> before 1970.

Should go in this week.

Pierre chimed in on the date issue

If Derick's TZ and new strtotime go in this week, then pecl/date
will be updated accordingly and ready to go to ext as well. If not,
it will be ready with its own TZ support in the wait of Derick's

he also mentioned he was working to sync Boutells GD with php's

There was probably other interesting stuff hidden away, but by that point I was pretty sick of reading arguing over the merits/demerits of goto and ifsetor which basically boiled down to "idiots will misuse it" and "it's not needed or can be done in userspace/with labels" - I think both are pretty weak reasons, why do we have pcre and ereg anyway? But that's besides the point. Finally Andrei called a halt to the madness on June 7th, and although the thread lived in by spawning some not-so-funny discussions of various mailing list laws and a brief discussion of mawk - which totally lost me - it seems to have died a nice death.

Andi summed it up with a great message which I'll quote in it's entirety...


Finally catching up with all the million comments. Definitely a way to get distracted from real work :)

I don't want to get distracted from what I consider should be the main objective and bigger issues than yes to one or another feature.
We should get PDO, new execution engine and some other changes out to the public.
We need to fold in the Unicode changes into public CVS before we have a maintenance nightmare. We can't manage more than two PHP 5 branches at once. It'll be unmaintainable and tough.

I'll roll PHP 5.1 Beta 1 tomorrow. Hopefully we will then start getting some very much needed feedback from the public for HEAD.

After talking to Andrei & Rasmus, I think it becomes clear that we should aim to RC 5.1 in the beginning of July so that we can close the 5.0.x branch and merge Unicode into HEAD. There will hopefully then be a quick development cycle for upgrading a lot of functions for Unicode support, and in addition we could address some features like goto, and other improvements which are required. Releasing 5.1 doesn't mean 5.5 or 6.0 (whatever we call the Unicode version) couldn't be released this year.
I'm sure Andrei would love that :) (so would I, and incidentally my original name is Andrei too).

It's for the benefit of all to make progress and not slow the release cycle to a halt, especially for people who are looking forward to the "major" features. We have some great stuff coming and it'll go bad if we don't move the major pieces along.


P.S. - Anyway, from looking over the thread it definitely seems like 100 people have had 101 different ideas for ifsetor(). Just strengthens my point of doing it yourself in code.
As far as goto is concerned, I pointed out some technical issues (Stas mentioned some) as far as the implementation is concerned back when Sara did her patch. I don't object to having a strict, static implementation of goto when we get a clean implementation. Actually I might even take it upon myself to look for a solution. It should go into the Unicode version. It's not high priority and I'm sure PHP users around the globe will survive without it for a while.

The last two days wrapped up with a brief question of why private abstract methods were allowed (stupidity, obviously) followed by some cvs commits that made them illegal :)

So, php5.1 is coming - what are you using? The biggest reason cited for the php 5.1 push is the desire to get the unicode stuff into HEAD so idiots...err...testers like me can start finding the bugs...and finding the get the idea. But no one wants to have three branches open - it's just crazy - so they want 5.1 out and released so the 5.0 branch can be closed and there will be 5.1 and HEAD - well, and php4 but they've gotten VERY strict that ONLY bugfixes go in there. In fact there's even a cvs hook denying commit on the 4 branch now.

All hail the mighty php - start testing those php4 apps on php 5 and fix the breakages - a zend.compatibility_mode ini_set in the top of your code and making sure the pass by reference error is disabled will let most everything run without problems.



Be the first to write a comment!

Post a Reply