Facebook
Twitter
Google+
Kommentare
11

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:

These tools are a set of small tight cgi binaries written in C. They perform a number of functions including:

  • 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!

Über den Autor

Johannes Schlüter

Johannes Schlüter is Mitglied des MySQL Engineering Teams bei Sun Microsystems, einer 100igen Tochter der Oracle Corporation, und ist Entwickler im PHP Entwicklungsteam wo er die Rolle des Release Managers für die PHP 5.3 Serie hat. Er lebt in München, hat ein blog auf http://schlueters.de/blog/ und tweetet als @phperror.
Kommentare

11 Comments

  1. Happy Birthday! Gibt es jemanden unter euch, der schon seit 15 Jahren PHP entwickelt? Bei mir sind es gerade mal 8 Jahre.

    Reply
  2. @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 🙂

    Reply
  3. 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 ^^

    Reply
  4. 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 !

    Reply
  5. Pingback: hakre on wordpress

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen