PHP - beliebte serverseitig interpretierte Skriptprogrammiersprache
PHP, das bei goneo mittlerweile in der Version 7 zur Verfügung steht, ist eine Scriptsprache und im Webbereich äußerst beliebt. Grund dafür ist, dass PHP dank einer quelloffenen Lizenz kostenfrei verfügbar ist und man Scripts gut in HTML -Dokumente eingebetten kann: Die PHP-Anweisungen werden einfach mit in den HTML-Code geschrieben. Voraussetzung ist, dass der Webserver die PHP-Anweisungen erkennt und ausführen kann. Bei goneo sind die Server für die Hosting-Produkte goneo Webhosting Basic und höher auf PHP ausgelegt.
PHP und das Word Wide Web
Die Idee zu der Skriptsprache PHP entstammt dem Wunsch, auf Webseiten mehr Interaktivität mit dem User zu ermöglichen. HTML ist eine Auszeichnungssprache, die sehr gut geeignet ist, um das Aussehen eines Dokuments in einem Browser festzulegen, indem die einzelnen Elemente mit sogenannten Tags benannt werden. Es wird so definiert, dass eine Wortgruppe eine Überschrift darstellt und die nächste Wortgruppe ein Textabsatz sein soll. In HMTL gibt es aber keine Möglichkeit Operationen vorzunehmen, also etwa zwei Zahlen zu verknüpfen (zu addieren, zu subrstahieren etc.) oder Texte (Zeichenketten) aus Formularen (auch: forms), die vom User eigegeben werden, zu manipulieren, abzuspeichern oder weiterzuverarbeiten.
Zwar gäbe es die Möglichkeit, Funktionen wie das Addieren zweier Zahlen durch den Browser vornehmen zu lassen und als Ergebnis in der Webseite anzuzeigen (Javascript nutzt zum Beispiel diese Möglichkeit), doch der Browser kann das Ergebnis nicht an den Webserver zurückschicken, damit es dort eventuell abgespeichert werden könnte. Nur so stünde das Ergebnis auch anderen Webseitenbesuchern zur Verfügung. Man brauchte also die Möglichkeit, dass der Webserver solche Operationen ausführen kann und Ergebnisse auch abzuspeichern vermag.
In der Praxis in einer Zeit vor PHP hat man Befehle zur Berechnung und Manipulation von Daten vom Server verarbeitet lassen, indem man entsprechenden Programmcode in den HTML-Dokumenten besonders gekennzeichnet hat und so an den Webserver übermittelte. Der Server hat dann bevor er die HTML Datei an den Browser schickt, das Dokument auf diese Direktiven hin untersucht, bei Bedarf interpretiert und ausgeführt.
Man machte sich die Möglichkeit zunutze, dass der Webserver Apache zum Beispiel, in Webdokumenten eingebaute Inkludierungsanweisungen umsetzen konnte (Server Side Includes): Wenn in einem Webdokument eine besondere Zeichenfolge gefunden wird, dann wird der nachfolgende Teil als Befehl für den Webserver interpretiert. Diese Datenverarbeitung geschieht auf dem Server. Die Schnittstelle, über die die Daten übergeben werden, ist das Common gateway interface, kurz CGI. Über diese Schnittstelle können serverseitig Programme gestartet werden oder es steht auf dem Server ein Interpreter bereit, der die Sequenzen von Befehlen erkennt und abbarbeiten lässt. Der Webserver kann dann das Ergebnis dieser Datenverarbeitung zurückgeben und an eben dieser Stelle im Webdokument einfügen. Mit dieser Technologie konnte man Besucherzähler realisieren, Datums- und Zeiteinblendungen vornehmen, ein Navigationsmenü realisieren oder auch die ehemals so beliebten Gästebücher. Meist hat man dafür die Sprache PERL benutzt, grundsätzlich waren aber auch C-Programme (etwa bei besonders missionskritischen Anwendungen wie Suchmaschinen) oder PASCAL-Routinen möglich.
PHP eignet sich im Hosting-Umfeld, also für das Webdesign und die Entwicklung leistungsfähiger Webanwendungen sehr gut, ist aber nicht grundsätzlich auf das Web beschränkt. Wie auch Python ist die Sprache auch in einigen Betriebssystemen standardmäßig enthalten.
Die Entwicklung von PHP
Die Anfänge von PHP reichen zurück bis in das Jahr 1995 als Rasmus Lerdorf, ein dänsicher Programmierer, ein Projekt namens PHP/FI vorstellte. Es handelte sich dabei um eine Sammlung von Scripts, die in der Programmiersprache PERL verfasst waren. Ursprünglich ging es für Lerdorf darum, Zugriffe auf seine persönliche Homepage zu erfassen. Er nannte die Sammlung der PERL-Scripts Personal Homepage Tools.
PHP/FI war für viele User interessant, die eine eigene Homepage betrieben haben, zum Beispiel auf Universitäts- oder Unternehmensservern. Die meisten Anwender hatten keinen tiefen Zugriff zum System, also keinen root-Zugriff und auch keine Berechtigung, um die httpd Konfigurationsdatei zu ändern oder ein CGI-Programm abzulegen. Dies war für PHP/FI nicht nötig. Diese User konnten alles Notwendige in das zugängliche ~/public_html Verzeichnis kopieren. Man brauchte auch keine Server Side Includes (SSI), um PHP/FI anzuwenden.
Lerdorfs Weiterentwicklung seiner PHP Tools wurde mit der Programmiersprache C realisiert. Diese Weiterentwicklung ging als PHP/FI in die Geschichte ein, wobei FI für Forms Interpreter stand. Nun waren Datenbankzugriffe möglich, es gab Variablen und der Programmtext konnte in das HTML-Konstrukt eingebettet werden. Es mussten also keine weiteren Dateien erstellt oder angesprochen werden, um Funktionen und Befehle vom Server ausführen zu lassen. So konnte man als Webdesigner auf recht einfache Weise Webseiten dynamisieren, indem Usereingaben, die in Formularen eingegeben wurde, ausgewertet und für weitere Zwecke verwendet werden konnten.
Lerdorf gab den Code frei, so dass eine Fehlerbereinigung und Weiterentwicklung durch andere Programmierer möglich war. Obwohl aus der sich entwicklenden PHP-Community Code zugesteuert wurde, war die Entwicklung immer noch sehr auf Lerdorf konzentriert.
1997 erschien eine weitere, ebenfalls in C realisierte Version, nämich PHP/FI 2.0. Es gab eine lange Betaphase. Das offizielle Release wurde bald von frühen Versionen von PHP 3.0 abgelöst.
Der Nachfolger, PHP 3.0, ging aus einem Universitätsprojekt hervor. Die beiden Forscher Andi Gutmans und Zeev Suraski entwickelten PHP mit Blick auf E-Commerce-Anwendungen neu. Lerdorf, Gutman und Suraski kooperierten. Sie sorgten mit PHP 3.0 und seinen Erweiterungsmöglichkeiten, einer konsistenteren Syntax und der Unterstützung vieler Datenbanken und Protokollen für die Basis der weiteren Entwicklung: Durch die vielen Möglichkeiten, die PHP nun bot, entstand eine große Entwicklercommunity, die dafür sorgte, dass die Zahl verfügbarer Erweiterungsmodule schnell und stark anstieg.
Damit wurde PHP, das nun als Hypertext Preprocessor benannt werden wollte, nach 1998 sehr populär.
Nach der offiziellen Freigabe begannen schon die Arbeiten an der 4er Version von PHP. Der Kernel sollte neu geschrieben werden. Es zeigte sich, dass PHP zwar für externe Systeme sehr offen war, dass es aber die Verarbeitungsgeschwindigkeit mit größeren Datenmengen unbefriedigend war, gerade bei größeren Anwendungen. Der neue Kernel wurde Zend Engine genannt, wobei der Begriff Zend einfach aus den Vornamen der Entwickler, Zeev und Andi, gebildet wurde. Im Mai 2000 wurde PHP 4.0 freigegeben.
PHP konnte nun auch mit anderer Webserversoftware als Apache ausgeführt werden. Auch die wichtigen sogeannten Sessions wurden damit eingeführt. Zudem haben die Entwickler die Sicherheit der Usereingaben verbessert.
In einer PHP-Session wird jedem Webseitenbesucher ein eindeutiges Identifikationsmerkmal zugewiesen. So kann man nun ab PHP 4.0 Variablen und Werte für einen spezifischen User speichern, wobei die Session-ID als Cookie abgelegt wird oder auch an die URL angehängt wird. Damit waren solche heute allgegenwärtigen Anwendungen möglich wie Login-Prozeduren, damit sich User registrieren können oder auch Warenkörbe in Onlineshops.
Sicher trug auch das rasante Wachstum des Word Wide Webs in den Jahren 1998 bis 2000 und der Wunsch nach leistungsfähigen Skriptsprachen, die mehr Interaktivität möglich machen sollte, zur großen Verbreitung von PHP bei. Einige Quellen gehen davon aus, dass PHP 3.0 auf etwa 10 Prozent aller Webserver installiert war und PHP 4.0 von etwa 20 Prozent aller Domains im Web verwendet wurde. Nicht zu vergessen ist, dass PHP immer noch einer offenen Lizenz unterlag und kostenlos verfügbar war.
Der zeitliche Abstand von PHP 3.0 auf PHP 4.0 betrug etwa zwei Jahre. Nochmal zwei Jahre länger dauerte es bis zur Veröffentlichung von PHP 5.0. Die neue Zend Engine II in PHP 5 nutzt nun ein verbessertes Modell zur objektorientierten Programmierung. Zudem sind neue Konstrukte in die Sprache eingeführt worden, am bekanntesten ist sicher die Überladung.
Aktuelle PHP Versionen und die Zukunft von PHP
Die Weiterentwicklung von PHP 5.3 wurde im März 2013 eingestellt.
Die heute im produktiven Betrieb verwendeten Versionen ist bei goneo PHP 7 In den letzten Versionen hat sich gezeigt, das die Möglichkeiten, objektorientiert zu programmieren, in PHP ein stärkeres Gewicht bekommen haben. Eine andere wichtige Aufgaben, der sich die Entwickler gestellt haben, war eine Begradigung der Releasepolitik.
Als Nachfolger der Hauptlinie PHP 5 wäre eigentlich ein PHP 6 zu erwarten gewesen. Tatsächlich war PHP 6 geplant, doch Entwicklungen aus der 6er Version sind in Unterversionen der 5er-Serie eingeflossen. Ein Release PHP 6 wird es nicht geben. Statt dessen springt der Versionszeiger gleich auf die 7.
Die Bedeutung von PHP für das Web
PHP gehört heute zu den meisteingesetzten Scriptsprachen, also Programiersprachen, deren Programmtexte von einem Interpreter gelesen, gedeutet und ausgeführt werden.
Ursprünglich war PHP eine Bereicherung für die üblichen Webseiten, um mehr Interaktivität zu ermöglichen. Inzwischen basieren sehr komplexe Anwendungen auf PHP. Zu den bekanntesten Beispielen gehören WordPress, Joomla! oder Drupal. Aber auch viele individuelle Software-Projekte sind mit PHP realisiert worden.
Um die Arbeit von Softwareentwicklern und Webdesignern zu beschleunigen, greift man gerne auf Frameworks zurück. Frameworks sind Sammlungen von häufig verwendeten, komplexeren Funktionen und Tools. Zu den bekanntesten PHP-Frameworks gehören symfony, CAKEphp oder Typo3Flow.
Für PHP stellt sich - wie es für alle Sprachen, die serverseitig interpretiert und ausgeführt werden, der Fall ist - die Herausforderung der Ausführungsgeschwindigkeit. Je nach Kontext muss also für genügend Serverressourcen gesorgt werden. Ein anderer Ansatz ist, die zu interpretierenden Scripts zunächst in Bytecode und letzendlich in Maschinencode zu übersetzen. Ab PHP 5.5 steht ein eigener Bytecode-Cache zur Verfügung. Es existieren aber mittlerweile eine Reihe anderer Caches und Beschleuniger, die teilweise aber nicht den kompletten Sprachumfang bedienen.
Anzutreffen sind auch Compiler, die aus PHP zunächst C- oder C++ Code erzeugen und dann Maschinencodebefehle daraus generieren, also direkt ausführbare Programmdateien. Zu den bekanntesten Compilern dieser Klasse gehört Hiphop, das einer quelloffenen Lizenz unterliegt und von Facebook entwickelt, eingesetzt und zu HHVM, das mit dem Ansatz einer virtuellen Maschine arbeitet, weiterentwickelt wurde. Es handelt sich dabei nicht mehr um PHP an sich, sondern vielmehr um eine Implementierung von PHP.
Diese Compilierung verwendet man auch mit anderen Sprachen, teilweise schon im Grundsatz: Beispiel hierfür wäre node.js, bei dem aus Javascript mittels der V8-Engine zunächst C++ - Code und anschließend Maschinensprache compiliert wird.
PHP wird oft mit Java verglichen, das ungefähr zur gleichen Zeit entstand. Java, das compiliert wird, wird oft als robuster und disziplinierter beschrieben, wobei Java aufgrund der vielen Frameworks, Laufzeitumgebungen und Abstrahierungstools verwirrend wirkt. Als Alternativen zu PHP werden neben Java auch Python und Ruby genannt.
PHP erlernnen
PHP entstammt der Open Source Welt und die Verbreitung ist immens. Auch, wenn man als Webdesigner wohl selten vor der Aufgabe steht, eine eigene Anwendung in PHP komplett neu schreiben zu müssen, ist das Wissen über PHP in Zusammenwirken mit Datenbanktechnologien wie MySQL hilfreich bis unabdingbar. Im professionellen Bereich gehört es durchaus zu den Anforderungen, die Funktionsweise von Extensions, Erweiterungen beziehungsweise Plugins in WordPress, Drupal oder Typo3, die auch auf PHP basieren, nicht nur nachvollziehen zu können, sondern auch beurteilen zu können. Gelegentlich wird von Webdesignern, die in spezialisierten Agenturen arbeiten, auch erwartet, selbst Plugins schreiben oder verändern zu können, etwa um externe Systeme anzubinden.
PHP lässt sich mit Hilfe von Kursen oder Seminaren erlernen, aber natürlich auch im Selbststudium mit einschlägiger Literatur. Welche Methode effizienter ist, ist weitgehend von der eigenen Präferenz, der eigenen Motivation sowie vom persönlichen Lernstil abhängig.
Da PHP und auch die entsprechenden Laufzeitumgebungen kostenlos verfügbar sind, lässt sich eine eigene Lernumgebung recht einfach aufsetzen. Es reicht der eigene PC beziehunsgweise das eigene Notebook. PHP lässt sich auf Windows gut installieren. Stichwort hierfür ist XAMPP, eine Entwicklungsumgebung mit Apache Webserver und MySQL Datenbankserver. Installationsbereite Downloadpakete gibt es bei Apache Friends.