| Hypertext Preprocessor (PHP) |
|
PHP ist ein System, das PHP-Code serverseitig verarbeitet. Das bedeutet, dass der Quelltext nicht an den Browser übermittelt wird, sondern an einen Interpreter auf dem Webserver – im Gegensatz zu JavaScript, das clientseitig vom Browser interpretiert wird. Erst die Ausgabe des PHP-Interpreters wird an den Browser geschickt. In den meisten Fällen ist dies ein HTML-Dokument, wobei es mit PHP aber auch möglich ist, andere Dateitypen, wie Bilder oder PDF-Dateien, zu generieren. Um eine PHP-Datei im Rahmen einer Webanwendung ausführen zu können, benötigt man ein System, das mit den in der Datei enthaltenen Anweisungen umgehen kann. Aus diesem Grund wird durch eine Schnittstelle (beispielsweise ISAPI oder CGI) der Interpreter von einem Server-Daemon bzw. Server-Dienst (z. B. Apache oder IIS) ausgeführt. Die Kombination von Linux/Windows als Betriebssystem, Apache als Webserver, MySQL als Datenbanksystem und PHP wird LAMP bzw. WAMP genannt. Fertige LAMP- und WAMP-Pakete, die das einzelne Laden und Konfigurieren von Paketen aus dem Internet unnötig machen, werden u. a. im Projekt XAMPP entwickelt, wobei es inzwischen Versionen für Linux, Solaris, Windows und Mac OS X gibt. Vorteile der serverseitigen Ausführung sind, dass beim Client (Browser) keine speziellen Fähigkeiten erforderlich sind oder Inkompatibilitäten auftreten können, wie das etwa bei den verschiedenen Ausprägungen von JavaScript der Fall ist. Außerdem bleibt der PHP-Quelltext der Seite auf dem Server, und nur die generierten Daten sind für den Besucher einsehbar. Gleiches gilt für andere Ressourcen wie Datenbanken, die daher auch keine direkte Verbindung zum Client benötigen. Nachteilig ist, dass jede Aktion des Benutzers erst bei einem erneuten Aufruf der Seite erfasst werden kann. Da PHP normalerweise in einer Webserver-Umgebung läuft, unterliegt es auch dem zustandslosen HTTP. Außerdem wird jede PHP-Seite vom Webserver interpretiert, wodurch dessen Belastung steigt. Diese Vor- und Nachteile sind nicht PHP-spezifisch, sondern treten bei jeder Web-Anwendung auf. Zusätzlich liest, prüft und übersetzt der Interpreter den Quelltext bei jedem Aufruf erneut. Dies mindert die Reaktionsgeschwindigkeit des Servers und erhöht nochmals die Last. Um dem entgegenzuwirken, stehen verschiedene Bytecode-Caches zur Verfügung, welche eine zur Ausführung vorbereitete Version des Programmes zwischenspeichern und somit den Zugriff auf diese Datei beim nächsten Aufruf beschleunigen (siehe auch Abschnitt Performance). Mit PHP lassen sich auch kommandozeilenorientierte Skripte, die vom Internet unabhängig sind, schreiben. Die GTK-Erweiterung stellt sogar eine Programmierschnittstelle für eine grafische Oberfläche zur Verfügung, für die weder ein Webserver noch ein Browser benötigt werden. Verglichen mit „Allzweck“-Skriptsprachen wie Python, Ruby und Perl waren in einer ersten Version die Schnittstellen für die grafische Oberfläche und zu anderen Betriebssystemfunktionen aber spärlich und wurden kaum verwendet. Die aktuell entwickelte PHP-GTK-Version 2 strebt hingegen eine Abdeckung der GTK-API von 95% an [10]. Gegenwärtig wird PHP jedoch vor allem auf Webservern genutzt. |