Become a Patron!

My Amazon wishlist can be found here.

Life Line

PHP Look Back


We are almost at the end of 2002, and it seemed appropriate to look back on the development issues of the past year. So starts the first PHP Look Back! If you have any comments, feel free to post them with the link at the bottom of this page.

There was a lot of discussion this year on several subjects, it all started with Andi's message entitled "PHP 5" on the very first day of the year:

"The Zend Engine 2 has made lots of progress. I think we should have a discussion of what other things besides the scripting engine we'd like to change for PHP 5." [1]

Yes, Finally! We're heading for PHP 5!

I found it necessary to disagree with a message that said "IMHO, all extensions should be PECL". [2] Since then I've changed my mind, as you can read in my blog entry. [3] Our dedicated PHP troll Sir M. Lemos also had some opinions on the future of PHP's development and of course he plugged Metabase. [4] This lovely thread had no conclusion and wasted 88 e-mails.

Two weeks later Edin Kadribasic emailed php-dev with the happy news that he added a Command Line Interface (CLI) version of PHP which does some neat tricks to make working with PHP as a shell scripting language much easier. [5] It went live with PHP 4.2.0 (released on 22-Apr-2002) but not yet enabled by default, which only happened in PHP 4.3.0 (released on 27-Dec-2002) after a bitter fight about the naming of the CLI and CGI files. On the same day Sir M. Lemos emailed the list again to do another plug of Metabase, totally unrelated to the subject. [6] My comment launched the first good flamewar of the year started, resulting in lots of nasty comments coming my way. Sterling made a nice summary of all this. A week later, on January 18th, Andi posted a message that he wanted to release an alpha version of Zend Engine II, which should have been finalized by the end of Q2 in 2002. [8] As we all know, it's still not finished :) In January we also had our first encounter with Eduardo Melo, the computer programmer who wanted to "use a similar command of C language as such as if (a==b && b==c)". After some private emailing, I posted a rather harsh message to Eduardo saying that he was using the wrong list. Not surprisingly, Manuel found it necessary to flame me for it, but other people jumped in to kick Manuel's ass. [9] In the last week of January Joey Smith reported "On Saturday, Jan. 26th, at 11:36am MST my son, Joseph Clark Smith, Jr. was born. He is 19.5" in length and 7 lbs. 5 oz." and on the very last day of the month we had another nice discussion about compiled PHP code. [10]

In February we started talking about upcoming PHP 4.2.0 release, and on the same day Zeev banned Sir M. Lemos from the php-dev mailing list, because Zeev was sick of his bickering, and for once there was a non-stupid comment from James about this, which tells us exactly how a lot of people felt. Too bad this message was not public. On 11-Feb Erik was wondering if people whoe "keep telling me PHP is a dead end, it's in fact a dying language." are just making it up or not, but of course PHP is not dying! On the last day of February we created PHP_4_2 branch, but the actual release would appear in another 7 weeks. [12] We also released PHP 4.1.2 on this day because of "a buffer overflow in the RFC-1867 file upload code".

In March another PHP Baby was born "Buster (working name only) Lerdorf, Born 13:26 PDT Wednesday March 6, 2002, Weight: 9.0 pounds, Length: 19.25 inches". To celebrate this wonderfull event Sascha Schumann introduced a new build system for use in PHP 4.3 which greatly smoothed the whole build machine. [13] "Frank from the PHP audit project" announced that the project started started a full audit of PHP on the 4.1.2 version, which was already released a few weeks ago. In the long term very little of this project was committed to the PHP CVS, and most of this work was trashed. On March 12 work began on the streams layer which was released with PHP 4.3.0. It was committed to CVS a few days later, [14] but of course there were also some bugs that resulted in "crashes in fflush() of libc and backtrace shows that its called by php_stdiop_flush, which is called from php_stream_flush, php_stream_free". The first release candidate of PHP 4.2.0 came out on March 21, after which we decided to disable the CLI by default as it was still considered experimental. In the last few days of March we were bickering about SIDs and generating those, and Sterling was very happy with Sascha using a smiley in his post to the mailing list: "OMG, sascha just used a smiley face -- REPENT! THE APOCALYPSE IS COMING ;))))"

In April Yasuo wanted to enable mbstring by default, but got some comments against immediately, with my mail summarizing most of the issues. [15] This would be the last time this issue was discussed... Dan and Harmut also noticed that the mbstring module caused annoying problems in PHP 4.2. Anyway, at this point it got enabled by default. The first problems with Apache 2 also showed their face; because the Apache folks decided it to give it the "ready for production" status, tons of PHP users thought that PHP would work flawlessly with it, but it was certainly not true. On the 11th of April Rasmus had the bright idea of bundling the GD library with PHP so that we no longer relied on the Boutell folks who seemed to have lost interest in GD. Tons of fixes were applied to our bundled library by various people. One day later Ken Egervari found it necessary to start a useless discussion on "The PHP Platform", 88 wasted emails. On April 22nd PHP 4.2.0 was released with the biggest change being that register_globals flag was turned off by default. A message sent on the 27th by Theodore Brinkmann about "<?php=" resulted in another useles discussion. [16]

In May we started the PHP 4.2.1 release cycle to fix some bugs that were caused by enabling the mbstring module by default, and of course some other annoying things. On this same day in May I made a mention of the Xdebug extension for debugging PHP. [17] This resulted in quite a lot of cheers by various people but there were some comments against it. [18] With the backporting of the DomXML extension from the HEAD branch to the PHP_4_2 branch on May 6th we were ready to release PHP 4.2.1, which happened on the 13th. On that same day Rasmus posted the results of a profiling run on PHP[19] but no real use could be found for this information. On the 24th Mark Mohawk annouced the availability of Msession Beta4, [20] a few moments later Andrei Zmieski moved the msession extension out of php4/ext to pear/PECL because it was not a mainstream extension; [21] this action sparked a nice discussion which resulted in the reinstatement of the msession a few days later, even though Jani questioned "how many real users does it have? 30'000?".

A day later a small discussion was started by Zeev and he explained that "the main problem with PECL right now is that when an extension is moved to PECL, its author gets the feeling as if it was banished to Siberia, and that has to be changed". [22] Luckily, a few weeks later this problem was solved. In the last week we had a nice discussion on bundling libxml, a lots of pros and cons were discussed in a large thread (201 messages) with the consensus being not to bundle libxml.

For some people all those largish discussion became too much, Hans Rakkers wondered "whatever happened to the technical level on this list". [23] I kind of have to agree with it, there are a lot of people who think their opinion really matters that much, which Sascha explained in a message a few monts later "Too many people think that their opinion actually matters." [24]

In June Andrei announced [25] his site with unofficial patches [26]; a small discussion on overloading the + operator for strings followed. Andrei had a fitting signature too "2 + 2 = 5 for extremely large values of 2.". [27] A few days later Stig announced that the PEAR installer now can install PECL packages which brought PECL back from Siberia. Another troll on the list was explaining that "oo != php", but he already knew we found him annoying: "***this will be my definitive last posting regarding this issue***", as he stated in his message. [28] The guru Preston L. Bannister also stated, "Im sick of people associating oo features as java features!". Well, we're sick of people who want everything but don't do anything. When Sascha fixed something in the session module a week later, Yasuo wanted us to merge this into the PHP_4_2 branch, from which PHP 4.2.2 was about to be released. Sascha didn't think that it was important enough, and stated that "It is not like an attacker can gain access to the server, it just makes it a bit harder for attackers to exploit ignorant people. That group will always be vulnerable to social engineering, something which can only be addressed by education. Technology is not able to upgrade your brain, after all." [29] After a fix to the external auth mechanism by Jani a discussion ensued in which he and Rasmus locked horns over the correctness of the fix. This discussion would return in December, when PHP 4.3.0 was about to be released. Later that month we had another discussion on the locale issues with constants: in some locales (Turkish for example) there is no lower case letter for the "I" and the constants wouldn't work as Zend would convert the name of the constant to the lower case.

On the first day of July some annoying twat started the "Bughunt" with the goal of lowering the number of bogus, old, or invalid bug reports. At that moment there were more than 800 bugreports marked as "Open". Some people grabbed a bugpack to verify them, but it was not a great success. We didn't want to make a ranking of bug reports closed per person because "PHP QA is much more than boosting your ego, and if you're closing bugs because you'll end up higher in some ranking then you're doing it for the wrong reason." [31] PHP guru Manuel expounded on this, "Anyway, it seems that Derick that people that fix bugs are not entitled to more recognition that they can have today, or was it because it another idea from Manuel Lemos? Nah, Derick would never be biased against Manuel Lemos! :-)" [30] The rest of the month was fairly quiet because most people were on holiday. There was one interesting event which led to the release of PHP 4.2.2: "The PHP Group has learned of a serious security vulnerability in PHP versions 4.2.0 and 4.2.1. An intruder may be able to execute arbitrary code with the privileges of the web server." [32] The downloads that happened upon this release caused some severe problems with the availability of our main website and we moved it to a different box. [33] After this release we set our sights on PHP 4.2.3, but Stig also wanted to start on PHP 4.3.0 at the same time. It became clear later that Stig didn't have the time to do the release, so Andrei became the Release Manager (RM) for PHP 4.3.0. On the last day of the month Alan Knowles, famous for his weird new things with PHP, posted a message in which he expressed his ideas about having threads in PHP, but the proposal did not seem viable. [34]

August made a slow start, mostly because it was still holiday time. In the 2nd part of the month Wez requested some HTTP/FTP gurus to work on the http:// and ftp:// wrappers and a little discussion of using cURL for this started up. [35] Wez went along with the normal wrappers, but there are now some little hooks for the cURL streams. A few days later Rasmus went ballistic [36] because of the "Use of trans sid may risk your users security." addition by Yasuo in the php.ini comments for session.use_trans_sid. A few nice flames were added, like "YOU CAN'T RELY ON IP ADDRESSES FOR AUTHENTICATION!!!"; [37] only 84 messages were wasted on this. Thies started another discussion [38] on backporting debug_backtrace() to Zend Engine 1. Zeev and Andi didn't really want this because it would give users fewer reasons to upgrade to Zend Engine 2 / PHP 5. As they were about the only ones opposing, Thies committed the patch a few days later. On the 17th Zeev expressed [39] the idea of releasing PHP 4.2.3 in a week; some QA people found it too fast, but Zeev, stubborn as ever :), wanted to do it himself. In the next few days a lot of bugfixes were backported from HEAD to the PHP_4_2 branch and RC1 saw life on the 22nd. With this release Wez wrote up a plan for versions 4.3 and 5 [40] where he wanted to "Bundle Brads php-soap extension, and "market" PHP 5 as being "Web Service Enabled"", to which Mike Robinson replied "This will stop the "bleeding of the PHP users...." Manuel Lemos will be pleased."

On the first day of September James Cox [41] started the discussion of not enabling mbstring by default again and enabling as few extensions by default as possible. Most of the core developers agreed with this, most of the Asian guys were against because "the code is very stable. New streamable filter will not break any thing, also." [42] and "Tell other languages developers support multibyte strings, it's not a core feature." [43] Jani got sick of all this bullshit and implemented '--disable-all'; [44] we still love you for this! On the 6th PHP 4.2.3 was released. [45] On the 19th Michael Vergoz posted a "security problem" [46] to the list, but nobody knew what it was and pointed him to the php-general@ mailing list. [47] [48] Somehow he got pissed and called us "quelle bande de connard" (what a bunch of assholes). [49] In the last week Edin announced the PHP embed SAPI to allow for inclusion of PHP into other (C) programs. [50]

In October Yasuo started to bitch about implicit flush being enabled by default for the CLI [51] [52] and his subsequent commits broke things. He got 'tried' of the issue and he really thought that "BTW, CLI is setting implicit_flush always in it's code. implicit_flush shouldn't be turned on other than debugging." [53] I reverted his 'fix' and he reverted my patch instantly. Andrei branched PHP_4_3 on the 5th [56], but on the 6th Zeev posted a message [57] about scratching the current PHP_4_3 branch because it was simply not stable enough and would be a mess to maintain. We agreed and started with a few pre-releases of PHP 4.3.0.

On the 14th Mr E. Nemerson started a discussion on disabling short_open_tag by default. [58] You could guess this, of course, but a nice war followed; lots of popcorn was used. After 115 message (sigh) it became clear that we didn't want to change it. Another 'cool' idea was offered by 'NTPT' to make it possible to change the scope of variables. [59] Jani presented graphs [60] that showed the number of bugs in the bug tracking system over a month's worth of time; it was nice to to see when and how many open bugs we had. During the 4.3.0 release process we came up with a much better run-tests.php script to collect reports, more additions are on the way to collect everything in a DB and not on the mailing list. At the end of the month Yasuo went for another round of of useless bitching about implicit_flush. [55] To make Yasuo realize he was the only person who thought that implicit flush should be turned off for the CLI, Zeev started a poll. [54]

November started with the PHP Conference in Frankfurt [61] and Andrei proposed to disable mbstring by default for PHP 4.3.0 [62] (yay! again). Finally the correct decision was reached and his proposal was implemented. We also got some new servers and were finally be able to put up snapshots again and Marcus Boerger wanted to "increase build time from 4 hours to 2 hours" (whatever that may mean :). On the 18th Mattia Cazzola came up with the bright idea of having an error handler for parse errors, and John Coggeshall became the leader of the "Parse errors must be catchable and I want I18N error messages" movement, which luckily was wiped off the drawing board after a very largish discussion (692 messages). A few days later Sascha, who apparently didn't see the big mess that localized error messages would give those who provide support for PHP, came up with an idea for an implementation. [63]

In December the release of PHP 4.3.0 was imminent, and Christoph Crottolo [64] made a note about the naming problems with the new CLI. In 114 messages we decided not to change the name for the CGI and make a selective installation of both the CLI and CGI possible [66]. On the 16th our French friend Bertrand Mansion thought that we had a bug in PHP that meant that $foo:: was not supported, but a few of the more intelligent PHP developers told him that it was this way by design and that he had to use eval(). [65] On the 27th PHP 4.3.0 finally saw the light of day [67] after a long and arduous release process. In the last few days of the year Sascha started a nice little fight with Zeev and Rasmus about quoting behavior in discussions, [68] [69] although he pushed the matter over the egde, he certainly has a point with it.

With this I want to conclude this summary of PHP in 2002; I'd like to thank Yasuo for his stubborness, Zeev for his sense of history, all the people who only got a CVS account to get a email address, Ilia for fixing countless bugs, Andi for his work on Zend Engine 2, Manuel for his constructive critisism, Stig (and others) for his work on PEAR, Jani for taking care of the bogus bug reports, John for his comments on everything he thinks he understands, James for 'fixing' up on several occasions, Sascha for his tour through Frankfurt's RLD and being picky about issues that matter [TM], Wez for his work on the streams, the trolls for making fools of themselves and for their stupid thoughts about matters they know nothing about, Levi for calling me a Jerk, [69] Stefan for his good work on security issues, Andrei for being the Release Master for PHP 4.3.0, and all the other people who moved mountains with their work on PHP. It was great fun to work with you all!

At last a top 10 with the biggest discussions on PHP-dev:

576  error handling
211  bundling libxml2 / bundling locations
182  php.exe - php-cgi.exe
166  mbstring
115  short_open_tag
110  output buffering
109  aggergate vs MI
 97  4.2.3
 88  PHP 5
 81  The PHP Platform

Happy new year!



This article has a short URL available:


This is impressive work! I have to say what I've seen of the PHP development team during 2002 is very encouraging for the future and I wish you all you guys a great year for 2003.


Hey, you've mentioned me... I'd never have thought to come as close to the php skies as a simple windows guy!

BTW, here's the Top 6 of the php guys as of your Look Back:

  1. Manuel (mentioned 11 times)

  2. Zeev (10)

  3. Andrei, Yasuo (7)

  4. Andi, Rasmus (5)

Metabase forever!

Have a good year and thanks for doing so much for php.


A friend of mine had an uncle who taught dancing to middle-aged couples. One day he visited some lessons and noticed that all the couples were fussing, stepping on each other's feet and arguing. When he asked, "what gives?" his uncle told him, "if you're not fighting, you're not dancing." (It may help to imagine this said with a yiddish accent). Damn me if this doesn't describe the PHP community.

Thanks for reminding us to keep our sense of humor, Derick. ;)


Awesome abstract :-) Nice attiude ;-))

Can't wait what 2003 will bring us (more bogus reports, more trolls, more jerking off [ops?], more stubborn Zeevstahs and Mr. [tm] Sascha messages,etc).

Hail to all php-dev`s.

Hello Derick,

Thank's for this summary of year 2002. It's interesting...and funny :) A very happy new year to you and thank's a lot for your good job in the php project !



A classy account of a years' worth of phpdev, and in essence, sums up the magnitude of your contribution to the project. You rock.

After banning open source applications for years for any "REAL" development, I finally turned to them about 6 months ago. Although there are still some frustrations, you cant beat the bang for buck ratio. I can definitely see the progress, and enjoyed reading your account of a years worth of it. Please keep up the effort, as it is appreciated. All the best for 2003!

Awesome work. Very good reading...

Here's a summary of the PHP General list, if you want it, too. :)

January - December: "How come when I have page.php?id=1, the $id variable is no longer created" "How do I store images in a database?" "Try"

That's pretty much it. :) Yeah, I know the register_globals thing hasn't been the whole year, but it feels like it.

Hey, that was a pretty tame message of mine you labelled "ballistic".

Hi Derick!

I translated your funny document into french ans announced it on,0,0,0,0.php3 <br /> Thanks for this good work :)


Why oh why do I miss M. Lemos so?

Thank's Derick and A VERY HAPPY NEW YEAR ! Big Up !

happy new year, derick !

I agree with Rasmus; his "ballistic" message was nothing of the sort. Good summary otherwise though.

Geez... can you guys really fall over one little word? It's just 'popular talk'... other passages in the summary are much more harsh.

Happy new year to you guys and thanx again for the wonderful thing we all use and love - PHP!

I have been with PHP from back when it was 3.x and it is an impressive language.

On the other hand there is something thats is starting to annoy me. Why all those specialized commands? nlbr() etc. Most new and "useful" commands can be made up with lower level commands.

It seems the language is beeing spammed with more or less redundant commands (visual basic anyone?)...

I won't even mention the 100000+ commands used for sorting. It has really got out of hand :-(

Terrific Job, good luck in the on coming year.

Happy news year !

oh... and keep on the good work in 2003 :)

Keep fighting - If it ever stop php will die. Seems like I missed a lot of fun.


Happy new year to the PHP team. Your hard work is really appreciated. Please keep PHP running, as it makes us earn bread!

Happy new year! Congratulations for that great work! Thank you to everyone. Never give up!

Happy New Year! Thanks a million for all of you PHP team's hard work! I'm looking forward to see the light of PHP 5...:)

Great read and thanx for not mentioning my stupid comment.

Cheers, BDKR


Happy new yeah,everyone!

Thank you very much!

I think the PHP language is best and great!

Happy new year!Thanks to the PHP team!

Good job, keep up the good work! Can't wait for the release of PHP 5.

happy new year Derick :) till now i still cant install php 4.3.0 with imap :D

I love PHP !!!!!!!

Very good work !!!!

congratulations :))) and happy new year !!!!!!!!

Happy new year, everyone!:P

Β‘Feliz aΓ±o nuevo!, and thanks for the incredible useful software: PHP

We need a application server of PHP.


Just want to thank you all for your work on PHP.

And yes, short tags should be disabled... ;)

keep up the good work derick !

I love you guys =) hehe, PHP saved my life.


This was cool. :)

All you guys make it possible for people like me to build quick easy applications for our website. Your language is perfect for the work I do and integrated seamlessly into our old website.

To all you hardworking guys: I am truly grateful. Keep up the great work!


nice idea to write this php 2002 summary :) and i guess that 2003 will also be funny.. pear 1.0 has been released and is already being bombed with lots of great packages ;)

and by the way..

Apeman - Friday, 3rd of January, 2003; 02:48:19 We need a application server of PHP.

hey, don't you have enough bananas :)

PHP5 is gonna kick some serious butt. Not that the current release doesn't already do that, thanks for the work guys and one excellent resource. Without it my site would still be in HTML and Perl.

Hppy New year PHP guys. Hope all the best.

Travelling to Zurich, I hit on a very cute waitress in a restorant whom, to my surprise, knew PHP and some of our names. Made me feel proud :)

Happy New Year you all and keep filling the php-dev archives with endless fights!

Well, keep up the good work!

Happy New Year !

Thank you for the excellent software/support/on-line docs. This language has come along way since my introduction to it in ver.3. Cheers, and an optimistic bow to many more years of this logical language!!

Thanks again for all your work on PHP ! it's a great and very useful langage i've been using everyday for years now.

I hope i can contribute one day to this great piece of work. Keep it up !

Thanks from French PHP users

Thanks to all the guys from the php team, for doing such an excellent job..

I'd like to say a big THANK YOU to all involved in the PHP development team. I rely on PHP everyday and it has never let me down, please keep up the good work.

Thanks guys.. I liked it so much !!

thank's for u'r works!

Great work, guys!

By the way: I hate short open tags, they really suck when you try to write XHTML 1.0 compliant sites :) But of course I don't want this to end up in a flamewar again ;)

May the source be with you... and may ASP be far away!

Very nice and informative summary. The adoption of PHP by Yahoo was, in a business point of view, the biggest news of the year! You PHP guys are doing a great job.


Beautiful summary! Thanks so much....

One more thing, guys: keep up the squabbles! ;-)

Thank you for volunteering to code PHP. Don't forget to add it to your resume and get some articles published. My vote for the best new feature of PHP 5: try/catch. Any progress on that PHP compiler using the APC engine?<a href=>[10]</a>

Many thanks to to the PHP team. We are proud of u guys.


What PHP team has achieved so far is very impressive, but i think THIS year agenda is pretty vast for u. As PHP is now gaining popularity, so putting PHP code design model and improving the coding convention and integration with fastly imerging technolgies is going to challenging but interesting. Wish u all good luck.

That was not only an informative, but ABSOLUTELY HILARIOUS, summary. Good job on it and everything else, you guys. "Good Job" is a pretty lame thing to say given everything that you do, but you get the idea.

I would like to express a thanks for all the hard work people have put into PHP that allows me (and now part of my department (-: ) to write some great apps.

The net would be much more of a dull place if it wasn't for PHP.

Biiiiiiiiiiiiiiiiiiiiiiii...ig thanks to all PHP development team. From India PHP Users

Yay for PHP! Keep up the good work!

Good luck for 2003. The stability of PHP has always impressed me and it is a fun language to work with.

Congratulations for this project, someday a friend, he tell me, PHP is for dummies, maybe is true, but, NOW it has a big future, only see Yahoo!, going to work over PHP.

Just i have a question, now is a war ASP.Net and PHP? or is only another language?


PHP rocks...plain and simple. And it has a great community behind it, more so than any other web development platform. Try to get answers quickly on an message board!


php == <?php asp == <?

stop that short_open_tag discussion! :D

Thank goodness for PHP... a year ago I was looking into learning a server-side language, I was going to go with ASP, then I found PHP and I've never looked back!

From a 17-year-old Windows user in South Africa, to all the PHP developers: thank you SO much for the BEST server-side language in the world! ASP, wtf is that ;) ?

It's been said before, and it will be said again: A giant thanks for all the work that you people put in to PHP. I would have had a much harder time developing my sites any other way. I don't think I would be anywhere near as far along. Thanks to all who contribute.

hallo, ik heb een dringende vraag ik zit in mijn examenklas en ik hooop dus dit jaar te slagen.haha. mijn vraag is hoe kunt je aan zo'n diploma outfit komen? zou iemand mij aub willen informeren. bij voorbaat dank

Thanks a lot for all your hard work, and PHP is the best of them all.

May the source be with PHP, and the future is clear: it's PHP.

To all the people who sweat over and fight over and flame themselves over PHP, I say: Thank you! Without all of your passion and hard work, this tool would not be with us today!

Keep your heads up, people!

PHP Rulez!!!

Thank you for all the hard work that brings us the best of features with PHP, i've been always impressed with the stability and development of this project, its good that we finally got PEAR, looking forward for PHP 5.

Cheers We r proud of u :)

Add Comment


Will not be posted. Please leave empty instead of filling in garbage though!

Please follow the reStructured Text format. Do not use the comment form to report issues in software, use the relevant issue tracker. I will not answer them here.

All comments are moderated