Die Skriptsprache PHP (Hypertext Preprocessor) zeichnet sich durch eine an C angelehnte einfache Syntax, eine gute Datenbankanbindung und umfangreiche Funktionsbibliotheken aus. PHP ist durch den zahlreichen Einsatz bei dynamischen Webseiten und Webanwendungen weit verbreitet und beliebt.
Geschichte von PHP
PHP wurde 1995 veröffentlicht und hat insbesondere seit PHP 3 eine rasante Entwicklung erfahren. Mit PHP 4 waren Klassen nutzbar und mit PHP 5 wurde der Fokus noch mehr auf die objektorientierte Programmierung gerichtet. Mit Version 4 wurde auch die Sicherheit und das Sessionmanagement verbessert. PHP hatte inzwischen auch seinen Vorgänger Perl abgelöst, da PHP als einfacher für den Webbereich zu erlernen galt.
2004 wurde PHP 5 veröffentlicht. Objektorientierte Programmierung wurde effizienter, Überladungen wurden möglich, ebenso wie Reflections und Exceptions. Ab Version 5.3 kamen Namespaces, Traits, Generatoren, Late Static Bindings und eine bessere Speicheranforderung dazu.
Durch Datenkapselung, Exceptions, Konstruktoren und Destruktoren näherte Sich PHP immer mehr anderen Programmiersprachen an. So wurde z.B. nur noch auf Objekte referenziert, anstatt sie direkt zu nutzen wie in PHP 4.
PHP 6 war ursprünglich als nächste Version geplant. Man entschied sich jedoch die Versionen von 5.3 weiter zu entwickeln und Version 6 zurück zu stellen.
Verbreitung
PHP ist die am häufigsten verwendete Programmiersprache zum Erstellen von Webseiten und Webanwendungen. Die stetig wachsende Popularität liegt in den zahlreich genutzten PHP-Applikationen begründet. Dazu gehören u.a. phpBB (Foren- Software), MediaWiki (wird von Wikipedia verwendet), osCommerce (E-Commerce Software) und easyImage (Bildergalerie).
Durch die stetig steigenden Anforderungen des Internets und dessen Benutzer, sind Webseiten keine kleinen Projekte mehr. Um der Menge an Daten und Quellcode gewachsen zu sein, ist die Verwendung von Datenbanken wie MySQL und der Einsatz von Frameworks wie Zend Framework in der heutigen Webentwicklung praktisch ein Muss.
Funktionsweise
PHP ist eine serverseitige Skriptsprache. Das bedeutet, dass eine Anfrage vom Client (Webbrowser) an den Server geschickt wird, der Dateien mit der Endung .PHP an einen Interpreter weiterleitet und das Ergebnis, meistens in einem HTML Dokument eingebettet, zurück an den Browser schickt. Das HTML Dokument bleibt dabei unverändert.
Wie in HTML gibt einen Anfangs- und Endtag, die den Anfang und das Ende eines Befehls kennzeichnen. Alles zwischen wird von einem Interpreter Zeile für Zeile geparst. So ist es möglich innerhalb eines HTML Dokuments an unterschiedlichen Stellen PHP Code einzubetten. Aufgrund immer umfangreicher werdender Webseiten führt dies jedoch zu einem unübersichtlichen Quellcode. Um dem entgegen zu wirken, trennt man HTML von PHP Code. Dabei helfen inzwischen zu diesem Zweck weit verbreitete CMS (Content Management Systeme) wie Typo3 und Joomla. Der Einsatz von CMS ist inzwischen ebenfalls wie PHP bei den meisten Webhostern möglich.
Die PHP GTK Erweiterung bietet die Möglichkeit PHP Anwendungen mit einer grafischen Oberfläche zu versehen, ohne dass ein Webserver oder Browser verwendet werden muss. Dennoch wird PHP überwiegend auf Webservern genutzt.
Nachteile
Neben den Vorteilen wie eine einfache Syntax, der weiteren Annäherung an andere Sprachen mit objektorientierter Programmierung, gute Datenbankanbindung und steter Weiterentwicklung dank immer populärer werdenden Webanwendungen gibt es auch viele Kritiken. Dazu gehören vor allem die vielen Funktionen die in den Standardbibliotheken noch imperativ vorhanden sind. Ebenso Funktionen die das Gleiche bewirken, aber unterschiedlich benannt sind. Im Gegensatz zu Sprachen wie Java ist in PHP Threading nicht möglich und gilt in einigen Modulen auch als zu unsicher dafür. Da PHP wie Ruby, Python oder Perl eine Skriptsprache und keine Compilersprache ist, wird derselbe Quellcode bei jedem Aufruf immer wieder übersetzt und ausgeführt, anstatt den übersetzten Code immer wieder zu verwenden. Der größte Nachteil an PHP ist demnach die mangelhafte Performance. In einigen Projekten ist man bemüht PHP Bytecode Caches zu entwickeln, mit denen man bei eigener Installation eine bessere Performance erzielen kann. Ein weiterer Nachteil ist die schwache Typisierung, die zwar zum Konzept gehört, aber eine häufige Fehlerquelle insbesondere bei Vergleichen bietet. Die fehlende Variablendeklaration ist ebenfalls eine bekannte Fehlerquelle, zusammen mit der Tatsache, dass Variablennamen case sensitive sind. Unterscheiden sich zwei Variablen namentlich durch den ersten Buchstaben in der Klein und Großschreibung, kann das im Laufe des Skripts zu Fehlern führen. Zumindest diese Namensproblematik kann beim Einhalten der bekannten Konventionen eingeschränkt werden. Denn bleibt das Problem bestehen, dass eine Variable registriert wird, sobald sie das erste Mal zur Anwendung kommt.
Sicherheit
Mit einer falschen Webserver Konfiguration können im Zusammenhang mit globalen Variablen Sicherheitslücken entstehen. Eine sichere Methode ist die generelle Initialisierung einer Variable vor dem Gebrauch. Gefahren drohen jedoch nicht nur von falschen Server Konfigurationen und PHP Sicherheitslücken, sondern auch durch schlechte Programmierung. PHP bietet Funktionen, die es ermöglichen Daten zu überprüfen und zu filtern. Diese sollten in jedem Fall genutzt werden, um unerwünschten Code durch Cross-Site-Scripting und Injections zu verhindern.
Lizenz
PHP wurde anfangs unter der GNU General Public License (GPL) ausgegeben.
Seit PHP 4 wird es unter der PHP License vertrieben. Diese Lizenz erlaubt es Quelltexte frei zu verwenden und zu verändern. PHP kann weiterhin kostenlos von der Webseite heruntergeladen werden.