Happy Birthday! PHP wird 15 Jahre
Als Sir Tim Berners-Lee 1989 die Grundlagen des World Wide Web legte war nicht abzusehen zu was das führen wurde. Ein System, innerhalb des Internet, mit der Möglichkeit Texte, die aufeinander verlinken, zugänglich zu machen. Nun, rund 20 Jahre später, ist das WWW ein Kernstück des Internets und zentraler Kanal zum Austausch von Informationen – sowohl für Firmen als auch ganz normale zwischenmenschliche Kommunikation.
Mit dem Web, in seinem ursprünglichen Zustand, wäre das wohl auch nicht gegangen. Das Web bestand aus statischen Seiten. Recht bald erkannte man, dass statische Seiten ja nett sind, man aber gewisse Inhalte nicht jedem zugänglich machen will oder einen Rückkanal will. So entstand 1993 das Common Gateway Interface (CGI) als ein standardisierter Weg, damit ein Web Server die Abarbeitung einer anfrage an ein externes Programm – oft in Perl entwickelt – geben konnte. Das funktionierte recht gut, nur musste jedes Programm, von jedem Entwickler, gewisse Grundfunktionalitäten, wie das entgegen nehmen von Formulardaten, zur Verfügung stellen.
Irgendwann zu der Zeit kam auch der in Qeqertarsuaq (Godhavn) auf der grönländischen Insel Disko Island geborene Rasmus Lerdorf mit dem Internet und dem WWW in Berührung. Auf der Suche nach einem Job stellte er seinen Lebenslauf online wollte aber mitprotokollieren, wer darauf zugreift. Dazu entwickelte er ein paar Perl-Scripte, die Zugriffe aufzeichnen. Über die Zeit erweiterte er diese Scripte, stellte aber fest, dass der Weg nicht optimal ist und implementierte eine Templatesprache in C.
Am 8. Juni 1995 – also genau heute vor 15 Jahren – stellte Rasmus Lerdorf dann in der Newsgroup comp.infosystems.www.authoring.cgi seine Lösung, die Personal Home Page Tools, vor:
- Logging accesses to your pages in your own private log files
- Real-time viewing of log information
- Providing a nice interface to this log information
- Displaying last access information right on your pages
- Full daily and total access counters
- Banning access to users based on their domain
- Password protecting pages based on users‘ domains
- Tracking accesses ** based on users‘ e-mail addresses **
- Tracking referring URL’s – HTTP_REFERER support
- Performing server-side includes without needing server support for it
- Ability to not log accesses from certain domains (ie. your own)
- Easily create and display forms
- Ability to use form information in following documents
Die initiale Funktionalität war recht beschränkt aber die Idee einer Web-Spezifischen Sprache war geboren. So wurde relativ bald PHP/FI 2.0 – der Name PHP/FI, mit FI für Forms Interpreter, sollte eine Anspielung auf den TCP/IP Protokollstack sein – entwickelt. Auch wenn sich die Syntax an manchen Stellen merklich unterscheidet ist die Verwandtschaft doch klar zu erkennen.
<?
/* Request Variable sind immer global verfügbar */
echo "Hi $name, you are $age years old!<p>";
if($age>50);
echo "Hi $name, you are ancient!<p>";
elseif($age>30);
echo "Hi $name, you are very old!<p>";
else;
echo "Hi $name.";
endif;
mysql_Connect("localhost", "root", "");
mysql_SelectDb("test");
/* MAGIC_QUOTES - oh ja! */
mysql("INSERT INTO user VALUES('$name', '$age')");
>
Um PHP/FI 2.0 scharrte sich eine Gruppe Anwender und Leute, die Rasmus mit Patches versorgten. Dabei waren auch zwei Studenten am Technion in Haifa, Andi Gutmans und Zeev Suraski. Im Rahmen ihres Studiums hatten die einen Web-Shop zu entwickeln sind dazu auf PHP/FI 2.0 gestoßen merkten aber bald, dass das für ihre Anforderungen zu beschränkt war.
Damit die Beschränkungen aufgehoben wurden entstand um 1997 mit PHP 3.0 eine Sprache, die doch merkliche Ähnlichkeit zu PHP wie wir es heute kennen hat.
<?php
echo "Hi $name, you are $age years old!<p>";
if($age>50) {
echo "Hi $name, you are ancient!<p>";
} elseif ($age>30) {
echo "Hi $name, you are very old!<p>";
} else {
echo "Hi $name.";
}
$m = mysql_connect("localhost", "root", "");
mysql_select_db("test", $m);
mysql_query("INSERT INTO user VALUES('$name', '$age')");
?>
Auch wenn diese Version Klassen einführte waren die wenig mehr als ein Weg um Funktionen zu gruppieren.
Aber auch da zeigten sich relativ bald schwächen. So war der Interpreter recht langsam, das Klassenkonzept nicht sehr weit gedacht und so manches grundlegende Web-Problem ungelöst.
So entstand recht bald PHP 4, das bereits 1998 veröffentlicht wurde. PHP 4 brachte nicht nur so elementare Dinge wie Sessions sondern auch eine Vererbung für das Klassenmodell und einen Interpreter, der kein reiner Interpreter mehr war sondern ein so genannter Interpiler – d.h. das Skript wurde vor dem Ausführen einmal komplett in ein Zwischenformat im Speicher kompiliert. Mit der Version gelang PHP definitiv der Durchbruch
im Web und nahezu jede serverseitig dynamische im web nutzte PHP.
Mit PHP 5, das 2004 erschien, wurde aus PHP, einer einfachen Scriptingsprache, eine vollwertige Objektorientierte Sprache mit Unterstützung für Dinge wie Interfaces, Sichtbarkeit und Referenz-Semantik für Objekte. Mit PHP 5.3 als aktuelle Version von PHP bietet PHP nun Dinge wie namespaces und anonyme Funktionen und ist auf der Höhe der Zeit. Auch wenn der nächste Evolutionäre Schritt in Arbeit ist.
15 Jahre. Eine Lange Zeit für eine Software. Happy Birthday PHP!
Alles gute zum Geburtstag auch von mir und vielen Dank an Johannes für den Artikel.
Happy Birthday! Gibt es jemanden unter euch, der schon seit 15 Jahren PHP entwickelt? Bei mir sind es gerade mal 8 Jahre.
Happy Birthday PHP und DANKE Johannes!
@mark nein, 15 jahre kenn ich es auch noch nicht. bei mir sind es „gerade mal“ 9 jahre.
alles jute zum geburtstag und auf weitere spannende 15 jahre! danke an alle core-entwickler und auch die community 🙂
Danke an Johannes für den tollen Artikel.
Ich komme auch nur auf 9 oder 10 Jahre PHP. Vorher habe ich auch noch in Perl CGI-Scripte entwickelt. Das waren noch Zeiten ^^
Bei mir sind es etwa 13 Jahre … Herzlichen Glückwunsch!
Hach, das waren noch Zeiten als register_globals der default war.
OOP: done, Frameworks und CI: `done`, Typsicherheit: incoming. Ja, PHP wird „erwachsen“.
Bin gespannt wie es weitergeht !
Boah bin ich alt. Komme schon auf 12 Jahre PHP. Perl war mir damals zu affig… 😉