Interlexikon-Hypertext Preprocessor

DIMAWEB-Interlexikon (Fachbegriffe)

PHP (Hypertext Preprocessor)

Allgemein

PHP (für „PHP: Hypertext Preprocessor“, ursprünglich „Personal Home Page Tools“) ist eine Skriptsprache mit einer an C und Perl angelehnten Syntax, die hauptsächlich zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird.

PHP wird als freie Software unter der PHP-Lizenz verbreitet. PHP zeichnet sich durch breite Datenbankunterstützung und Internet-Protokolleinbindung sowie die Verfügbarkeit zahlreicher Funktionsbibliotheken aus.

PHP unterscheidet sich von clientseitigen Sprachen wie Javascript dadurch, dass der Code auf dem Server ausgeführt wird und serverseitig HTML-Ausgaben generiert werden, die wiederum an den Client gesendet werden. Der Client erhält also nur das Ergebnis der Skriptausführung, ohne dass es möglich ist herauszufinden, wie der eigentliche Code aussieht. Ebenso können Webserver auch anweisen werden, alle HTML-Dateien mit PHP zu parsen. 

Ein weiterer Vorteil von PHP ist, die für den Neueunsteiger extrem einfache, aber im Funktionsumfang umfangreiche, Anwendung für Programmierer.

Geschichte

Seit der Veröffentlichung im Jahr 1995 nahmen die Entwickler teilweise umfangreiche Änderungen innerhalb der Programmiersprache vor. Der Kern der Sprache wurde mit PHP 3 komplett neu erstellt. Deutliche Anpassungen wurden mit PHP 5 bzw. PHP 5.3 vorgenommen, die den Fokus der Programmiersprache auf die objektorientierte Programmierung legt. Klassen waren jedoch bereits mit der vierten Version nutzbar.

PHP1 - Personal Home Page Tools

PHP wurde 1995 von Rasmus Lerdorf entwickelt. Der Begriff stand damals noch für Personal Home Page Tools und war ursprünglich als Ersatz für eine Sammlung von Perl-Skripten gedacht, die Lerdorf zur Protokollierung der Zugriffe auf seinen Online-Lebenslauf geschrieben hatte.

PHP2 - PHP/FI

Bald schuf Lerdorf eine umfangreichere Version in der Programmiersprache C, in der PHP bis heute entwickelt wird. Das schließlich veröffentlichte PHP/FI (FI stand für Form Interpreter) war Perl sehr ähnlich, wenn auch eingeschränkter.

PHP 3

PHP 3 wurde von Andi Gutmans und Zeev Suraski neu geschrieben, da das inzwischen erschienene PHP/FI 2 ihrer Meinung nach für E-Commerce unzureichend war. Lerdorf kooperierte nun mit Gutmans und Suraski, und so wurde die Entwicklung von PHP/FI eingestellt. Die Version PHP3 brachte die Verbreitung der Web-Skriptsprache PHP bedeutend voran. Die neue Sprache wurde einfach unter dem Namen PHP veröffentlicht, ein rekursives Akronym für PHP: Hypertext Preprocessor, um die in den Vorversionen PHP und PHP/FI vorhandene Implizierung einer persönlichen Nutzung zu beseitigen.

PHP 4

Das von Gutmans und Suraski gegründete Unternehmen Zend Technologies Ltd. entwickelte in der Folge die Zend Engine 1, die den Kern der PHP-4-Standardimplementierung bildet. Mit PHP 4 wurden die Ausführungsgeschwindigkeit komplexer Applikationen und die Sicherheit bei Verwendung globaler Variablen verbessert. Eingeführt wurden die Unterstützung für viele weitere Webserver, das Sessionmanagement, die Ausgabepufferung sowie eine Anzahl neuer Sprachkonstrukte.

Da das World Wide Web Ende der 1990er Jahre stark wuchs, bestand großer Bedarf an Skriptsprachen, mit denen sich dynamische Webseiten realisieren lassen. PHP wurde mit der Zeit für die Webentwicklung populärer als der vorherige De-facto-Standard Perl, weil es durch seine Spezialisierung als einfacher erlernbar galt.

Seit 2008 sind die Weiterentwicklung und der Support eingestellt.

PHP 5

Im Sommer 2004 wurde mit Version 5.0 eine weitere Entwicklungsstufe veröffentlicht. Wesentlicher Unterschied zum Vorgänger ist die Zend Engine II, die vor allem ein verbessertes Objektmodell nutzt, somit objektorientierte Anwendungen effizienter ausführt und Sprachkonstrukte wie Überladung ermöglicht. Dazu kommen Exceptions, Reflection, die Integration der Datenbank SQLite sowie Erweiterungen bei XML- und DOM-Handhabung.

Derzeit werden die Versionszweige ab Version 5.4 weiterentwickelt. Die Weiterentwicklung von PHP 5.3 wurde Mitte 2013 eingestellt. Auch der Support von PHP 5.3 mit Sicherheitsupdates wurde mit der Veröffentlichung von PHP 5.3.29 am 14. August 2014 eingestellt. Weitere Möglichkeiten im Rahmen der objektorientierten Programmierung wurden mit PHP 5.3 (Namespaces, Late Static Bindings), 5.4 (Traits, Array- und Konstruktor-Dereferenzierung) und 5.5 (Generatoren) vorangetrieben.

Mitte 2011 entschieden die Entwickler, den laut eigenen Angaben chaotischen Release-Prozess zu vereinheitlichen. Demnach sollen regelmäßig neue Versionen erscheinen und der Support für ältere Versionen mit einer festen Zeitspanne garantiert werden.

PHP 6

Ursprünglich als früher Nachfolger von PHP 5 geplant, wurde die Entwicklung von PHP 6 eingestellt. Geplant war unter anderem die Unterstützung verschiedener Unicode-Standards. Einige Verbesserungen sind in aktuellen PHP-Versionen ab 5.3 implementiert.

PHP 7

Nach einer langen Diskussion darüber, ob die nächste PHP-Version im Jahr 2014 nun den Namen des ehemals gescheiterten PHP 6 wiederaufnehmen soll, oder stattdessen eine Versionsnummer überspringen und PHP 7 heißen soll, wurde am 29. Juli 2014 endgültig bekanntgegeben, dass die Entwickler sich mit 58 zu 24 Stimmen für die Hauptversionsnummer 7 entschieden haben. Der Nachfolger von PHP 5 soll somit offiziell PHP 7 heißen.

PHP 7 wird voraussichtlich eine um bis zu 30 Prozent geringere Ausführzeit als PHP 5 haben, da Hashtabellen neu implementiert wurden. Die fertige Version soll im Oktober 2015 veröffentlicht werden.

Spezielle Merkmale von PHP

Im Gegensatz zu diversen anderen Programmiersprachen, die clientseitig, also auf dem Rechner des Users ablaufen, führt PHP seine Anweisungen serverseitig, d.h. direkt auf dem Server aus. Die Ergebnisse der Verarbeitung werden - in der Regel - im Browser angezeigt. Wie PHP arbeitet, betrachten wir weiter hinten noch etwas genauer.

PHP ist plattformübergreifend. Dies heißt, es ist auf allen gängigen Linux- und Windows-Versionen lauffähig und funktioniert auch mit Macintosh und OS/2. Angenehm dabei ist, dass die Scripts im Gegensatz zu den meisten anderen Programmiersprachen ohne große Mühe an eine andere Plattform angepasst werden können, sollte dies notwendig sein. Die Plattformunabhängigkeit bedeutet beim Einsatz im Internet nicht, dass Sie die Scripts für die Clients, die die PHP-Webseiten im Browser anschauen, je nach Betriebssystem ändern müssen, sondern dass geringe Änderungen notwendig sind, wenn auf dem Webserver das Betriebssystem gewechselt wird.

Der PHP-Code kann direkt in HTML-Seiten integriert werden. Allein durch die Endung .php oder .php3, mit der die Dokumente gespeichert werden, kann der Server erkennen, dass es sich um ein PHP-Script handelt. Die offizielle PHP-Website spricht von PHP als einer "HTML embedded scripting language". Der Begriff embedded, der ja mit eingebettet übersetzt wird, macht recht schön deutlich, wie die HTLM-Codes und PHP-Codes zusammengehen.

Eine weitere Besonderheit von PHP ist, dass es, wie eben schon zitiert, eine Scripting Language ist und keine Programmiersprache im eigentlichen Sinn. Dies bedeutet, PHP wird nur "aktiv", wenn ein Ereignis eingetreten ist, z.B. wenn eine Webseite (ein URL) aufgerufen wird oder wenn auf einer Webseite ein Formular von einem User ausgefüllt und dieses Formular abgeschickt wurde. Andere Programmiersprachen funktionieren im Gegensatz dazu stand-alone (Compiler), d.h., sie agieren von sich aus, teilweise das Web involvierend, teilweise nicht. JavaScript hingegen ist ebenfalls eine Scripting Language und von daher in gewisser Weise mit PHP vergleichbar, obwohl es meist nicht serverseitig, sondern clientseitig eingesetzt wird.

Es gibt kaum Unterschiede zwischen PHP3 und PHP4, obwohl in PHP4 durchaus einige nützliche Funktionen hinzugekommen sind und PHP etwas leistungsstärker geworden ist.

Funktionsweise von PHP

PHP ist ein System, das PHP-Code serverseitig verarbeitet. Das bedeutet, dass der Quelltext nicht an den Webbrowser übermittelt wird, sondern an einen Interpreter auf dem Webserver. Erst die Ausgabe des PHP-Interpreters wird an den Browser geschickt. In den meisten Fällen ist das 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, wie ISAPI oder CGI, der Interpreter von einem Server-Daemon oder Server-Dienst, wie Apache oder IIS, ausgeführt. Die Kombination von Linux/Windows/Mac OS X als Betriebssystem, Apache als Webserver, MySQL als Datenbanksystem und PHP wird LAMP (für Linux), WAMP (für Windows) oder MAMP (für Mac OS X) genannt. Fertige LAMP-, MAMP- und WAMP-Pakete, die das einzelne Laden und Konfigurieren von Paketen aus dem Internet unnötig machen, werden etwa im Projekt XAMPP entwickelt. Hier gibt es Versionen für Linux, Solaris, Windows und Mac OS X, die jedoch nur für Test- und Entwicklungsumgebungen genutzt werden sollen.

Da PHP normalerweise in einer Webserver-Umgebung läuft, unterliegt es auch dem zustandslosen HTTP. Jede PHP-Seite belastet den Webserver durch den Interpreter, zudem arbeitet der Interpreter den Quelltext bei jedem Aufruf erneut ab. Das mindert die Reaktionsgeschwindigkeit des Servers und erhöht die Last. Um dem entgegenzuwirken, stehen verschiedene Bytecode-Caches zur Verfügung, die eine zur Ausführung vorbereitete Version des Programmes zwischenspeichern und somit den Zugriff auf diese Datei beim nächsten Aufruf beschleunigen (siehe auch Abschnitt Bytecode-Caching und Artikel PHP-Beschleuniger).

Mit PHP lassen sich auch kommandozeilenorientierte Skripte schreiben, die vom Internet unabhängig sind. Die Qt-Erweiterung und die GTK-Erweiterung stellen sogar eine Programmierschnittstelle für eine grafische Oberfläche zur Verfügung, für die weder ein Webserver noch ein Browser benötigt werden. Die ersten Versionen der Schnittstellen zur grafischen Oberfläche und zu anderen Betriebssystemfunktionen waren spärlich und wurden kaum verwendet. Die aktuell entwickelte PHP-GTK-Version 2 strebt hingegen eine Abdeckung der GTK-API von 95 % an. Gegenwärtig wird PHP jedoch vor allem auf Webservern genutzt.

Sprachaufbau

In der Regel kann beim Sprachaufbau auf reguläre Ausdrücke verzichtet werden. Auch bemüht sich die PHP Sprache sichtlich, um Verständlichkeit und bietet teilweise (z.B. im logischen AND) sowohl Pascal (AND) als auch die Möglichkeit, C (&&) - Syntax zu benutzen.

Fehlerquellen und Problemstellung

Allgemeine Fehlerquellen

Kritiker führen eine Reihe von Unzulänglichkeiten in PHP an. So sei die Sprache ungesteuert gewachsen, wodurch ähnlich arbeitende Funktionen oft unterschiedlich benannt worden sind und die Reihenfolge der Funktionsparameter bei Funktionen mit ähnlichem Zweck teilweise nicht übereinstimmt. Zudem sind trotz vorhandener Objektorientierung viele Standardbibliotheken noch prozedural angelegt. Einige PHP-Module sind nicht threadsicher.

PHP besaß bis Version 5.4 keinen eigenen Bytecode-Cache, was ohne entsprechende Erweiterung bei jedem Aufruf einer Datei ein komplettes Parsen notwendig machte. Seit PHP 5.5 wird Zend Optimizer+ als Bytecode-Cache mitgeliefert.

Programmierungsspezifische Fehlerquellen

Die schwache Typisierung von PHP ist Teil des Konzepts, aber auch eine häufige Fehlerquelle. Ein Fehler tritt etwa auf, wenn numerische Werte mit Zeichenketten verglichen werden sollen, wobei es durch die implizite Typumwandlung zu unerwarteten Ergebnissen kommen kann, sofern nicht der Operator für typsichere Vergleiche verwendet wurde. Auch die unübliche Vereinigung des Array-Konzepts mit dem Dictionary-Konzept sorgt bei Programmierern, die mit anderen Programmiersprachen vertraut sind, teils für Fehler. Zudem ist es in PHP nicht möglich, eine Variablendeklaration zu erzwingen – Variablen werden vielmehr stets automatisch angelegt, sobald sie erstmals verwendet werden. Diese Bequemlichkeit hat zur Folge, dass etwa Tippfehler im Variablennamen zu schwer auffindbaren Programmfehlern führen können. Wird bei der Fehlerausgabe zusätzlich das Level E_NOTICE aktiviert, wird beim Verwenden einer nicht initialisierten Variable eine Fehlermeldung ausgegeben.

Webanwendungsspezifische Fehlerquellen

Eine Änderung der PHP-Standardkonfiguration konnte im Zusammenspiel mit globalen Variablen bewirken, dass fremde Daten über URL-Parameter in ein Skript eingeschleust werden konnten. Ab PHP 5.4 ist dies nicht mehr möglich, da die Option für globale Variablen entfernt wurde.

Quellenangaben

Usegroup.de (PHP Tutorial) - 02.01.2014

Php.net (Manual) - englisch

Phpeinfach.de (Was ist PHP?)

Wikipedia.at (Artikel PHP)

Htmlinfo.eu (PHP als Script)

und Eigene

Textfreigabe und Weiterverwendung unter freien Lizenzen GNU-Lizenz für freie Dokumentation (GDFL) und CC-BY-SA 3.0 Unported gestattet. (DIMAWEB-Network Solutions e.U.)

Fachbegriffe (Interlexikon)

Biometrische Sicherheit

Venenmuster

Venenmuster

Venenmuster sind bei jedem Menschen einmalig und fälschungssicher.

 

Lebendkennung

Lebendkennung

Erkennung nur wenn das Hämoglobin aktiv in den Handvenen fließt.

 

Zutrittssoftware

Zutrittssoftware

Individuell erstellte Software, verschlüsselt und sicher.

 

IT Solutions

  • Computerysteme für hohe Anforderungen, leistungsstark, hochwertig...


  • Internetanbindungen in Verbindung mit VoIP Festnetz-Telefonie....


  • Webdesing auf CMS Basis, Hostingkomplettlösungen für Marketing...


  • Wartungspacks und Fehler-behebungen für biometrische Systeme und Einzel PC...


  • Schulungsseminare oder Mitarbeiterschulungen für mehr Wissen...

Businesspartner

DIMAWEB und PCS

DIMAWEB und Microsoft

DIMAWEB und HP

DIMAWEB und U-Com

 

Dimaweb-Ikaruspartner

 

Social Networks

RSS Feed - Dimaweb  Dimaweb auf Facebook  Dimaweb auf Twitter  Dimaweb auf YouTube  Dimaweb auf Google+  Dimaweb-Pinterest