I don't know exactly when I started writing PHP. It was shortly after the start of my second quarter of my freshman year of college, when a newly-met friend of mine introduced me to PHP as an easier to understand alternative to Perl. That puts it, I think, somewhere in January or February of 1999.
20 years ago, give or take a week. I have been writing PHP for two decades. That's more than half my lifetime. I feel old.
I thought it would be amusing (mostly at my expense) to look back a bit on just how much the PHP world has changed in the last two decades.
When I started writing PHP:
- Our code files ended with
.php3, to differentiate them from the older.phpfi. - PHP existed only as
mod_phpfor Apache. That was the only web server that it ran on. Or that mattered, really. -
register_globalswas not only still a thing, it was considered a best practice. - The PHP engine (it wasn't even called the Zend Engine yet; Zend didn't exist) didn't do any pre-compilation. It interpreted every statement in a file one at a time, executed it, and then discarded it. That meant the same line inside a loop would get re-interpreted on every loop iteration.
- No one in PHP knew what prepared statements were. (OK, I'm sure someone did, but the zeitgeist didn't, and they weren't even possible to write yet, natively.)
- Instead, we had
addslashes(). And we were happy to have it! - We also has
magic_quotes, which automatically ranaddslashes()on all incoming input. The combination ofmagic_quoteswithaddslashes()(and its dopplegangerstripslashes()) led to some very... interesting code from certain junior developers who didn't know how to configure their server, let me tell you... - PHP still didn't have classes. At all. The
classkeyword didn't exist. And let's not even talk about anonymous functions. - PHP had no native session functionality. If you wanted to manage user login or state, you got to set your own cookies yourself.
- Uploading individual files to production over FTP was considered a best practice; the alternative was to edit directly on the server. (That was already wrong at the time. It still is. Don't @ me.)
- My editor of choice for pretty much all code was Nano. It would be a few years before I figured out how to turn off hard-word-wrapping in it...
- Most developers didn't know what version control is. Of course, the options at the time were RCS and CVS, so maybe that's understandable.
- Variable variables were considered good practice. Or at least, not a bad practice. (They are a bad practice. Don't @ me.)
- Template engines were a thing you wrote yourself. Assuming you used one at all. Putting PHP inline into HTML and inserting random
include()statements was still how the pros did it. - No variable could be type hinted, anywhere. If you cared about type, you had to check yourself with
is_*()functions. Most people didn't. Lots of SQL injections happened that way. - There was no way to share code. Everyone wrote everything from scratch, or if you were really progressive you copied and pasted random code off of a blog you found on Web Crawler. That's how you knew you were being efficient.
- Although they weren't called "blogs" yet. Those didn't exist for a few more years, although personal websites (mostly running either PHP or GeoCities) were already a thing.
- The release schedule for 3.0.x was "when Rasmus felt like it."
- The running joke "you're not a real PHP developer until you've written your own CMS and discarded it" wasn't a joke yet. It was just becoming reality, but it wasn't old enough yet to be a joke. (Yes, I wrote my own CMS and discarded it.)
And this was still an amazing leap over PHP/FI that came before it. :-)
Here's to the next 20 years, PHP!