Zum Inhalt springen

PHP

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 15. April 2005 um 17:38 Uhr durch 213.54.132.230 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

PHP (rekursives Akronym für „PHP: Hypertext Preprocessor“, ursprünglich „Personal Home Page Tools“) ist eine Skriptsprache mit einer an C bzw. Perl angelehnten Syntax, die hauptsächlich zur Erstellung dynamischer Webseiten verwendet wird. Bei PHP handelt es sich um Open-Source-Software.

PHP zeichnet sich besonders durch die leichte Erlernbarkeit, die breite Datenbankunterstützung und Internet-Protokolleinbindung sowie die Verfügbarkeit zahlreicher, zusätzlicher Funktionsbibliotheken aus. Es existieren zum Beispiel Bibliotheken, um GTK-Anwendungsprogramme nur mit PHP zu entwickeln.

Darstellung der Funktionsweise von PHP

PHP ist eine serverseitig interpretierte Sprache. Das bedeutet, dass der Quelltext – im Gegensatz zu JavaScript, welches in den HTML-Code eingebettet wird – nicht an den Browser übermittelt wird, sondern an einen Interpreter auf dem Webserver. Erst dessen Ausgabe wird an den Browser geschickt. In den meisten Fällen ist dies eine HTML-Seite, wobei es mit PHP möglich ist, andere Datentypen, wie z. B. Bilder oder PDF-Dateien, zu generieren.

Mit PHP lassen sich aber auch Skripte, die nichts mit dem WWW zu tun haben (wie beispielsweise Perl), schreiben. Mit einer GTK-Erweiterung kann sogar eine grafische Oberfläche hinzugefügt werden.

Um eine PHP-Datei ausführen zu können, benötigt man ein System, das mit den in der Datei enthaltenen Anweisungen umzugehen weiß. Aus diesem Grund wird durch eine Schnittstelle (beispielsweise ISAPI oder CGI) der Interpreter von einem Serverdaemon bzw. Serverdienst (in der Regel Apache oder IIS) ausgeführt. Die auf WWW-Servern übliche Kombination von Linux/Windows als Betriebssystem, Apache(2) als Webserver, MySQL-Server als Datenbank und PHP wird LAMP bzw. WAMP genannt. Fertige LAMP- und WAMP-Pakete, die das einzelne Laden und Konfigurieren von Paketen aus dem WWW unnötig machen, werden im Projekt XAMPP entwickelt, wobei es inzwischen Versionen für Linux, Solaris, Windows und Mac OS X gibt.

Die Vorteile der serverseitigen Ausführung sind, dass beim Client (Browser) keine speziellen Fähigkeiten erforderlich sind oder Inkompatibilitäten auftreten können, wie es beispielsweise bei Javascript und den verschiedenen Browsern der Fall ist. Außerdem bleibt der PHP-Quelltext der Seite auf dem Server und nur der generierte Code ist für den Besucher einsehbar. Gleiches gilt für andere Ressourcen wie z. B. 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. Außerdem wird jede PHP-Seite vom Server interpretiert, wodurch dessen Auslastung steigt. Diese Vor- und Nachteile sind nicht PHP-spezifisch, sondern treten bei grundsätzlich jeder Webapplikation 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 Auslastung. Um dem entgegen zu wirken, wurde eine Erweiterung namens MMCache entwickelt. Diese speichert eine zur Ausführung vorbereitete Version des Programms zwischen und beschleunigt somit den Zugriff auf diese Datei beim nächsten Aufruf.

PHP ist zeitweise etwas ungesteuert gewachsen. So funktioniert der Zugriff auf eine Datenbank mittels der MySQL-Funktionen anders als über ODBC; noch deutlicher wird dies beispielsweise bei Inkonsistenzen der Funktionen zur String-Verarbeitung. Zwar besitzt PHP bereits seit Version 3 grundlegend die Funktionalität, um objektorientiertes Programmieren zu unterstützen (diese wurden in Version 4 deutlich verbessert), bisher ist jedoch die gesamte Standardbibliothek prozedural angelegt. Auch bei objektorientierten Sprachen übliche Features wie Kapselung der Daten (z. B. private Variablen), Destruktoren (ersatzweise lässt sich aber in den meisten Fällen die Funktion register_shutdown_function() verwenden) oder Fehlerbehandlung per Exceptions (lediglich etwas unsauberer Workaround mit set_error_handler(), error_reporting() möglich) suchte man in PHP 4 noch vergeblich.

Die aktuelle Version, mit der neuen Zend Engine 2, ist seit dem 13. Juli 2004 PHP 5. Um die Missstände aus der vorherigen Version zu beheben, wurden Änderungen am Verhalten von PHP selbst nötig (so sind Variablen in PHP 5, wie bei den meisten Sprachen, nur noch eine Referenz auf das Objekt und nicht wie in PHP 3 und 4 das Objekt selbst).

Geschichte

PHP wurde 1995 von Rasmus Lerdorf entwickelt. Der Begriff stand damals noch für Personal Home Page Tools und war ursprünglich eine Sammlung von Perl-Skripten. Bald schrieb Lerndorf jedoch eine größere Umsetzung in C, worin PHP auch heute noch geschrieben ist. Das schließlich veröffentlichte PHP/FI (FI stand für Form Interpreter) war Perl sehr ähnlich, wenn auch viel eingeschränkter, einfacher, und ziemlich inkonsistent.

PHP 3 wurde von Andi Gutmans und Zeev Suraski neu geschrieben, da das inzwischen erschienene PHP/FI 2 ihrer Meinung nach für eCommerce zu schwach war. Auch die Bedeutung der Abkürzung „PHP“ wurde hierbei geändert. Lerdorf kooperierte mit Gutmans und Suraski und so wurde die Entwicklung von PHP/FI eingestellt. Die von Gutmans und Suraski gegründete Firma Zend Technologies Ltd. entwickelte in der Folge die Zend Engine 1, die das Herz von PHP 4 darstellt.

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 populärer als der vorherige De-facto-Standard Perl, welches mit der extrem steilen Lernkurve von PHP nicht konkurrieren konnte.

Meilensteine

Lizenz und Bezug

PHP wird unter der PHP License vertrieben, einer Softwarelizenz, die die freie Verwendung und Veränderung der Quelltexte erlaubt. Die Software kann somit kostenlos aus dem Internet geladen werden; daneben ist PHP jedoch schon bei einigen Betriebssystemen (z. B. bei allen relevanten Linux-Distributionen oder Mac OS X) im Lieferumfang enthalten. Seit dem 13. Juli 2004 liegt PHP in der komplett überarbeiteten Version 5 vor. Diese, aber auch ältere Versionen, können von der offiziellen Homepage (www.php.net) heruntergeladen werden.

Performance

Da es sich bei PHP um eine Skriptsprache handelt, wird diese bei jedem Aufruf neu interpretiert. Dies führt bei umfangreichen Projekten schnell zu Performanceeinbrüchen. Abhilfe kann hier ein Vorinterpretieren mittels eines Op-Code Caches sein. Da dies bei PHP im Gegensatz zu Java nicht standardmäßig vorgesehen ist, muss man existierende Caches von Hand einbinden.

Beispiel für diese Caches sind Turck-mmCache und dessen Nachfolger eAccelerator (beide Open Source und Freeware) und ein kommerzielles Tool von Zend. Der Performancegewinn beträgt durchaus einige hundert Prozent.

Verbreitete PHP-Applikationen

Es gibt verschiedene, sehr weit verbreitete Applikationen, die in PHP geschrieben wurden. Hier eine kleine Auswahl:

Übrigens läuft auch die Wikipedia auf einer PHP-Applikation, siehe MediaWiki.

Source-Code-Beispiel

<html>

<head>
<title>PHP-Beispiel</title>
</head>

<body>
<h1>Beispielprogramm in PHP</h1>
<p>Dies ist ein einfaches Programm in PHP,
das die grundlegende Syntax aufzeigen soll</p>

<?php

/**
 * Ein einfaches Programm zu Demonstrationszwecken
 * (Dies ist ein mehrzeiliger Kommentar)
 */
class SampleClass {
    private $m_text;

    // Member-Variable $this->m_text mit dem Konstruktorparameter initialisieren
    public function __construct($text) {
        $this->m_text = $text;
    }

    // nichts tun
    public function __destruct() {
    }

    // statische Methode
    public static function init() {
        // Ein Objekt der Klasse SampleClass anlegen
        $sample = new SampleClass("<p><strong>Hello World!</strong></p>");

        // Die Methode getText() des Objekts $sample aufrufen und
        // in der Variable $text speichern den Rückgabewert
        $text = $sample->getText();

        // Die Variable $text ausgeben.
        echo $text;
    }

    // Den Inhalt von $this->m_text an den Aufrufer zurückgeben
    public function getText() {
        return $this->m_text;	
    }
}

// Aufruf der statischen Methode init()
SimpleClass::init();

?>

</body>
</html>

An diesem Beispiel werden dem geübten Programmierer gleich ein paar Eigenschaften von PHP ins Auge stechen:

  • Variablen werden in PHP mit dem Dollarzeichen $ gekennzeichnet. Man muss den Typ der Variablen nicht explizit definieren, er ergibt sich aus dem Kontext. Dies bezeichnet man auch als loose typing.
  • Es sind in PHP zwei Arten von Kommentaren möglich: Die Zeilenkommentare // und #, die bis zum Ende der Zeile reichen, und Blockkommentare /*, die bis zum Kommentar-Ende-Zeichen */ reichen.
  • Seit PHP5 werden auch Eigenschaften der Objektorientieren Programmierung wie Vererbung, Interfaces, und öffentliche, geschützte und private Elemente einer Klasse unterstützt.
  • Wie man sieht, kann der PHP-Code zwischen <?php und ?> sowohl in eine HTML-Datei eingebettet sein, als auch in einer eigenen Datei stehen und den gesamten HTML-Code selbst per echo-Befehl ausgeben. Bei umfangreicheren Projekten empfiehlt sich aber die strikte Trennung von PHP und HTML-Code.

Literatur

Es sollte immer beachtet werden, dass gedruckte Werke zu PHP aufgrund der permanenten Weiterentwicklungen von PHP sehr schnell veralten. Die aktuellsten Informationen und Dokumentationen findet man immer unter der offiziellen Website www.php.net.

  • Matthias Kannengiesser: PHP 5 / MySQL 4, Studienausgabe. Franzis Verlag, ISBN 3-7723-7005-5
  • Sebastian Bergmann: Professionelle Softwareentwicklung mit PHP 5. dpunkt.verlag, ISBN 3-89864-229-1
  • George Schlossnagle: Professionelle PHP 5-Programmierung. Addison-Wesley, ISBN 3-8273-2198-0
  • Jörg Krause: PHP 5, Grundlagen und Profiwissen. Hanser Fachbuchverlag, ISBN 3-446-22735-0
  • Jens Ferner: PHP 5 Referenz. Data Becker, ISBN 3-8158-2369-2
  • Martin Goldmann, Markus Schraudolph: PHP 5 – Die Neuerungen. Galileo Press, ISBN 3-89842-490-1
  • Carsten Möhrke: Besser PHP programmieren. Galileo Press, ISBN 3-89842-381-6
  • Helmut Dittrich, Jürgen Mellenthin: PHP 5 advanced – Fortgeschrittene Techniken für Umsteiger und Profis. Galileo Press, ISBN 3-89842-261-5
  • Christian Wenz, Tobias Hauser: PHP 5 Kompendium. Markt und Technik , ISBN 3-82726-292-5

Dies ist eine kleine Auswahl von Links zu PHP. Eine ausführliche Linksammlung findet sich im Open Directory Project.

Zeitschriften

Vorlage:Wikibooks1 Vorlage:WikiReader Internet