PHP Tutorial

Als serverseitige Programmiersprache wird PHP in Webanwendungen genutzt und zwar immer dann, wenn Webanwendungen und Websites dynamisch gestaltet werden sollen und auf Interaktion zwischen Client und Server gesetzt wird (wenn beispielsweise Dateien von dem Server heruntergeladen werden oder Daten aus einer Datenbank im Hintergrund geladen werden sollen).
Nahezu alle Webanwendungen lassen sich in der Skriptsprache realisieren, zum Beispiel Onlineshops, Content-Management-Systeme, Soziale Netzwerke oder auch Browserspiele. Mittlerweile setzen zudem viele mobile Apps (insbesondere für Androids) darauf, den Serverpart über PHP abzuwickeln. Die große Auswahl bereits in PHP realisierter Projekte lässt erahnen, was alles möglich ist.

Die offizielle PHP Webseite finden Sie unter: http://php.net/

Eine große Erleichterung ist zudem die Trennung von Logik und Design, da PHP ohne HTML, CSS und JavaScript nur für die Backend- und nicht für die Frontend Entwicklung geeignet ist. In einem sehr Entwicklerteam mit sehr heterogen verteilten Fähigkeiten lassen sich Zuständigkeiten so besser verteilen.

Da PHP inzwischen jahrelange erprobt wurde, aktiv weiterentwickelt wird und Konzepte wie Objektorientierung und die einfache Anbindung an über 20 verschiedene Datenbanksysteme unterstützt eignet es sich auch für komplexe oder sicherheitskritische Anwendungen. Sollte an dieser Stelle an die Grenzen der Sprache gestoßen werden, kann die entsprechende Software problemlos um Komponenten in anderen Sprachen erweitert werden (zum Beispiel Perl, Python, Ruby, Javascript oder AJAX).
Mit PHP Desktop gibt es inzwischen sogar eine (inoffizielle) Lösung, um Desktopanwendungen mit PHP und Co. zu realisieren. Dabei wird lokal ein Webserver mit integriertem Browser ausgeführten, in dem die Anwendung läuft, sich jedoch so anfühlt, als würde eine normale, lokale Applikation gestartet.

PHP aus technischer Sicht erklärt

PHP selbst wird in einen Webserver als Servermodul eingebunden und ist fortan dafür verantwortlich, entsprechende Programme zu verarbeiten. Das vom Entwickler geschriebene und für ihn lesbare Skript wird je nach PHP Implementierung auf unterschiedliche Art und Weise in plattformunabhängigen Byteocde übersetzt, aus dem dann Maschinencode generiert werden kann (der für den Entwickler nicht mehr lesbar wäre, aber von der ausführenden Hardware gelesen werden kann). Seit PHP Version 5.5 wurde zudem das sogenannte Bytecode-Caching integriert, das bei kleineren Änderungen verhindert, dass das gesamte Skript neu erstellt werden muss, sondern nur die sich verändernden Bestandteile.
Nachdem der Code übersetzt und verarbeitet wurde, wird die entsprechende Ausgabe (meistens in HTML) zurück an den Clientbrowser gesendet, wo diese dann dargestellt werden kann.
Die meisten Interpreter für PHP werden selbst in C geschrieben und können – sofern sie öffentlich zugänglich sind – selbst modifiziert werden. Das dafür erforderliche Verständnis ist jedoch extrem hoch.

PHP Besonderheiten

Die Entwicklung mit PHP birgt einige Fallstricke und Besonderheiten gegenüber anderen Programmiersprachen, die auch Einsteiger früh genug lernen sollten. Unabhängig von der Programmierung sind die hohe Verbreitung, die relativ flache Lernkurve und die Erweiterbarkeit dank OpenSource.
In der Entwicklung gilt es von Anfang an einige Dinge zu beachten:

Dynamische Typisierung: in PHP muss anders als in Sprachen mit statischer Typisierung (etwa Java) nicht mitgeteilt werden, welchen Datentyp eine Variable repräsentiert.
Magische Konstanten: es gibt einige magische Konstanten in PHP, über die fest definierte Dinge angesprochen werden, diese sind:
__DIR__ : gibt das aktuelle Verzeichnis aus
__FILE__ : liefert den vollen Pfad zur aktuellen Datei
__FUNCTION__ : Name der Funktion, in der sich gerade befunden wird
__CLASS__ : Name der Klasse, in der sich, in der sich gerade befunden wird
__METHOD__ : Name der Methode der Klasse
__LINE__ : aktuelle Zeile innerhalb der Datei
__NAMESPACE__ : Name des Namespaces, in dem sich gerade befunden wird
Fehlerbehandlung: PHP muss dazu gezwungen werden, bestimmte Fehlerarten auszugeben und zu erklären, dies funktioniert wie viele weitere Einstellungs- und Optimierungsmöglichkeiten über die php.ini Datei.
Sicherheit: wer professionelle Anwendungen mit PHP entwickeln möchte, der sollte sich Gedanken über grundlegende Konzepte der Sicherheit machen. Im Session-Management zwischen Client und Server und in der Übergabe von Parametern über Funktionen wie GET liegen Möglichkeiten, die Webanwendungen von außen zu manipulieren, die von Beginn an bekannt sein und vermieden werden sollten.

Durch die große Flexibilität von PHP ist es zudem gut, sich Richtlinien zu überlegen, die dafür sorgen, dass der Code sauber lesbar, wartbar und erweiterbar bleibt. Bei den Arbeiten mit mehreren Personen ist zudem die Einbindung einer Versionsverwaltung in PHP noch wichtiger als in den meisten anderen Sprachen.

PHP ist eine serverseitige Skriptsprache und steht für: ‚PHP Hypertext Preprocessor‘, unter der Berücksichtigung, dass PHP von Rasmus Lerdorf im Jahre 1995 programmiert wurde und die ersten PHP-Versionen wie folgend genannt wurden: ‚Personal Home Page Tools‘.

Mittlerweile sind laut Wikipedia weltweit über 250.000.000 Webseiten aus PHP online und dessen Tendenz ist stark steigend.

PHP ist eine serverseitige Skriptsprache! Auf dem Bild werden Module eines Webserver und die Verbindung per HTTP zum Clienten angezeigt.

PHP ist eine serverseitige Skriptsprache! Auf dem Bild werden Module eines Webserver und die Verbindung per HTTP zum Clienten angezeigt.

Man kann auf der obigen Abbildung auch sehr gut erkennen, dass PHP keine Verbindung zum Clienten hat.

Auslieferung von dynamischen Webseiten an den Clienten:

Der Nutzer / Client gibt die URL zu einer dynamischen Webseite in einem Browser ein, anschließend sendet der Browser einen HTTP-Request / Anfrage an den Browser.

Der Server überprüft den HTTP-Request / Anfrage ob die Webseite vorhanden ist, anschließend ist der Interpreter dran: Überprüft und wertet den Programmcode genau aus, nach dessen Vorgabe wird dann die Webseite konzipiert, der Interpreter gibt das Ergebnis an den Server zurück und zu guter Letzt überprüft der Server das Ergebnis und liefert dieses per HTML an den Browser zurück und der Client sieht das Ergebnis und kann die dynamische Webseite entsprechend nutzen.

Das gute dran ist: Der Client sieht nur das HTML, das PHP aus welchen die dynamische Webseite erstellt wurde, bleibt auf dem Server enthalten und kann nicht public gemacht werden. Somit ist der PHP Code auf dem Server, dann vor neugierigen Augen gut geschützt.

Die Vorteile von PHP:

  • PHP ist komplett kostenlos
  • PHP ist sehr einfach zu lernen
  • Dynamische Webseiten programmieren
  • Integration und Verbindung mit MySQL und gängigen SQL Sprachen
  • PHP läuft fast auf jedem Betriebsystem
  • Riesige Funktionsbibliotheken
  • Viel und vor allem auch günstige Webspace-Angebote
  • Eine große PHP Community

Nachteile von PHP:

  • Im Gegensatz zu statischen Webseiten zum Beispiel aus HTML, werden die angeforderten dynamischen Webseiten aus PHP, bei Anforderung vom Clienten, dann vom Server zusammengestellt und per HTML verfügbar gemacht. Somit werden bei dynamischen Webseiten wesentlich mehr Resourcen verbraucht, als bei statischen Webseiten.
  • Um dynamische Webseiten mit PHP selbst zu erstellen, müssen Sie mit PHP programmieren können und damit wären wir beim eigentlichen Thema dieses Tutorial: PHP lernen

Beispiel von einen simplen PHP Code:

PHP Code: Hello World

PHP Code: Hello World

Und weiter geht’s mit PHP lernen, im PHP Tutorial Lektion 1 -> Erste Schritte