Programmiersprache PHP

Die Programmiersprache PHP

PHP-Programme werden am Server-PC ausgeführt und verteilen die Lasten daher ungünstig. Moderne Technik reduziert daher den Anteil von PHP auf jene Aufgaben, bei denen ein Server unersetzlich ist.

Zielgruppe sind StudentInnen und ambitionierte Informatik-Amateure

Zur Anwendung der Beispiele werden keine Kenntnisse vorausgesetzt. Die Hinweise zur Programmierung erfordern jedoch Grundkenntnisse der Informatik sowie irgend einer Programmiersprache.


Alternativen

Man kann PHP durch andere Programmiersprachen ersetzen, die ebenfalls am Server-PC ausgeführt werden, z.B. Java oder → Perl.
Viele ursprünglich mit PHP programmierte Aufgaben kann man mittlerweile komplett oder teilweise nach ↓ Javascript portieren.

PHP Entwicklungs-Umgebung


Der Zugang zu einem Webserver ist daher Voraussetzung für die PHP Programmierung. In diesem Kapitel werden verschiedene Varianten zur Herstellung einer PHP-Entwicklungs-Umgebung vorgestellt.

Die Dokumentation einer bereits vorhandenen Umgebung erfolgt am besten mit der → Funktion phpinfo()





In jedem Produktions-Web sind die PHP Fehler-Meldungen abgeschaltet. Es ist daher mühsam und langwierig, unvermeidliche Programm-Fehler zu finden und auszubessern.
Diese Entwicklungs-Umgebung eignet sich daher weder für die IT-Ausbildung noch für ernsthafte Entwicklung.



In der Ausbildung kann man den StudentInnen fertig konfigurierte Virtuelle Standard-Server zur Verfügung stellen. Solche Appliance-Dateien werden auch im Internet (allerdings in unterschiedlicher Qualität) angeboten.
Bei guter Konfiguration arbeitet der Virtuelle Server wie ein zusätzlicher Server-PC im eigenen lokalen Netzwerk.

Die AnwenderInnen erhalten an einem Virtuellen Server-PC typisch Administrator-Rechte. Man kann daher nicht nur den Betrieb, sondern auch Installation und Administration eines Servers trainieren. Andererseits kann man den Server durch falsche Maßnahmen auch beschädigen. Das kostet allerdings bei Verwendung eines virtuellen Server-PC nur wenige Minuten Arbeit zur Herstellung einer neuen Kopie.

Details zur → Virtualisierung


Die Leistung eines typischen Alt-PC oder µC reicht vollkommen aus, um damit (gleichzeitig) komplette Entwicklungs-Webs für 10...30 StudentInnen zu betreiben.

In der Ausbildung ist ein µC-Server besonders gut verwendbar: Man kann ihn überall hin transportieren, er integriert sich nach dem Einschalten sofort in das jeweilige lokale Netzwerk und ist in 1..2 Minuten arbeitsbereit. Ein zentraler µC-Server ist wesentlich robuster als private Virtuelle Server-PC für alle StudentInnen, weil diese nur die gleichen Rechte erhalten wie die KundInnen eines Web-Providers: Sie können alle typischen Server-Funktionen verwenden, den Server selbst jedoch nicht gefährden.

Ein Server auf µC wird nur 1mal installiert und konfiguriert. Danach kann man dessen Speicherkarte auf jedem Arbeits-PC innerhalb von Minuten auf eine oder mehrere weitere Speicherkarten kopieren.



Auf einem Windows-PC kann man die gleiche Software in WAMP-(Windows)-Version verwenden. Installation und Konfiguration wird jedoch nicht so wie auf Linux unterstützt und ist daher für AnfängerInnen schwierig. Außerdem kann sich die Software in einigen Details anders verhalten als auf einem Original Linux Server.

XAMPP ist ein Projekt, mit dem sich ein speziell angepasstes WAMP-System auf jedem Windows-PC installieren lässt. Die Installation ist einfach, das System arbeitet jedoch in einigen Aspekten anders als ein typischer Webserver. Für wenig geübte EntwicklerInnen ist es nicht leicht, die damit gewonnenen Erfahrungen auf den Server eines professionellen Providers zu übertragen.

Application Programming Interface (API)


Einfache AnwenderInnen sollten diese Tatsache einfach zur Kenntnis nehmen, weil die Erklärung viel Zeit braucht und sich die API-Varianten in der Praxis der PHP-Programmierung nicht unterscheiden.

Wer Server plant oder installiert, muss die Unterschiede der Varianten allerdings im Detail kennen.



Installation und Konfiguration wird von allen gängigen Linux-Server-Systemen gut unterstützt.
Zusätzliche Hilfe durch zahlreiche Tutorials, Tipps & Hinweise.
Man findet im Internet vollständige, fertig installierte und konfigurierte (LAMP)-Server dieser version als Virtuelle Server-PC.



PHP wird als eigenes Dienstprogramm (Server-Programm) verwendet.
Alle Software-Komponenten sind kostenfrei.



Diese Version ist - wenn überhaupt - als einzige zur Installation in Mobil-Geräten (SmartPhones) geeignet.



Bis auf das Betriebssystem sind alle Software-Komponenten kostenfrei.
Allerdings wird weder die Installation noch die Konfiguration vom Betriebssystem unterstützt. Daher gelingt meist nur fortgeschrittenen AnwenderInnen eine brauchbare Installation.
Zur Verwendung eines fertig konfigurierten Virtuellen Servers genügen allerdings Grundkenntnisse.



Die Installation von Apache (Quelle ApacheHaus, ApacheLounge) in 64-Bit-Version und PHP ( windows.php.net) gelingt meist nur fortgeschrittenen AnwenderInnen. Achten sie darauf, beide Komponenten in der gleichen Compiler-Version (VC*) zu installieren.

PHP Version 7


PHP-Version 7

ist die aktuelle Version der Programmiersprache PHP.
Sie bringt viele Vorteile, insbesondere eine wesentlich schnellere Ausführung.
Man muss damit rechnen, dass alle gängigen Web-Programm-Pakete früher oder später auf PHP‑Version 7 umgestellt werden.
Neue Entwicklungen sind nur mit dieser aktuellen Version sinnvoll.

  Einige Änderungen sind nicht mit älteren Versionen kompatibel.
Man muss daher abwarten, bis die verwendeten Web-Programm-Pakete in einer Version für PHP‑7 zur Verfügung stehen und bis der eigene Web-Provider diese Version ebenfalls unterstützt.

Es ist sehr empfehlenswert, das jeweilige Web vor dem Umstieg auf die neue PHP-Version sorgfältig zu testen.



Wer selbst Entwicklung mit der Programmiersprache PHP betreibt, informiert sich über die Änderungen, z.B. bei php.net
Bei eigenen Entwicklungen wird vorausgesetzt, dass man sie nicht auf dem Live Produktions-Web sondern auf einem eigenen Test-Server programmiert und testet.

Es ist sinnvoll, für die PHP-Versionen 5 und 7 getrennte Test-Server einzusetzen.
Solange das real verwendete Web noch mit PHP‑5 läuft, wird der Server mit PHP‑7 dazu verwendet, um die eigenen PHP-Programme auf die neue Version umzustellen. PHP wird auf jedem Test-Server so konfiguriert, dass alle Fehler, Warnungen und Hinweise angezeigt werden: Nur so kann man eigene Programme wirklich sauber und Zukunfts-sicher erstellen.

Wenn das reale Web auf PHP‑7 umgestellt ist und wenn die Programme auf dem PHP-7-Testserver erfolgreich laufen, wird der Test-Server mit PHP‑5 aufgelassen.



Der Test-Server kann in verschiedenen Versionen installiert werden:
  • Am einfachsten und am besten geeignet ist ein → Virtueller Server-PC. Man kann diesen Server selbst genau nach Bedarf installieren oder (für die Ausbildung) als fertig konfigurierte Datei kopieren und an beliebig viele AnwenderInnen verteilen.
  • Man kann einen realen (älteren, ausrangierten) PC oder auf einem → µC als Test-Server einrichten und im eigenen lokalen Netzwerk verwenden.
  • Man kann den eigenen Intranet-Server verwenden, soferne ein solcher vorhanden ist. In diesem Fall muss man jedoch Produktions- und Entwicklungs-Server voneinander trennen. Die Konfiguration unterschiedlicher 'virtueller' Webserver ist nicht ganz einfach.
  • Man kann ein Software-Paket wie XAMPP am eigenen Arbeits-PC verwenden. In diesem Fall verhält sich der Server jedoch mehr oder weniger anders als ein realer Standard LAMP-Server.



Andere Distributionen (z.B. Debian) verfolgen eine konservative Politik und werden PHP‑7 vermutlich erst nach einiger Zeit anbieten, und auch das anfangs nur als alternative Option zu PHP‑5. Die Installation von PHP‑7 auf Debian ist möglich, erfordert derzeit jedoch noch fortgeschrittene Kenntnisse von Linux.
Dieses Web wird laufend sowohl mit PHP‑5 als auch mit PHP‑7 auf allen gängigen Betriebssystemen und mit allen gängigen Browsern getestet.



PHP wird mit dem gleichen ↑ API installiert wie am Produktions-Server, d.h. meist als Apache-Modul.

Die Konfiguration von PHP ist in der Datei php.ini festgelegt. Der Pfad zu dieser Datei unterscheidet sich je nach Betriebssystem, typisch ist auf Linux /etc/php*
Meist gibt es unterschiedliche Konfigurations-Dateien für PHP als Webserver-Hilfsprogramm (CLI) und als Konsolen-Programm (CLI). Man legt vor jeder Änderung der Konfiguration eine Sicherungs-Kopie der Datei php.ini an.

Die Konfiguration von PHP (als CGI) sollte weitgehend jener des Produktions-Servers folgen. Diese ist bei einem Web-Provider nicht zugänglich. Man verwendet in diesem Fall eine Webseite mit der PHP-Funktion → phpinfo() zur Live-Ausgabe aller Konfigurations-Daten.
Die einzige wesentliche Abweichung der PHP-Konfiguration ist die Ausgabe aller Fehler-Meldungen, Warnungen und Hinweise am Test-Server (Variable error_reporting).

PHP ↔ Javascript


PHP wird durch Javascript sicher nicht vollständig ersetzt, aber ergänzt und daher wesentlich effizienter.
Es bringt Vorteile, PHP auf seine Kern-Kompetenzen zu reduzieren, z.B. auf die Kommunikation mit einer Datenbank. Andere Aufgaben delegiert man besser an Javascript, z.B. die Erzeugung und Formatierung von HTML- oder Grafik-Elementen.


Nachteile von PHP

PHP-Programme werden am Server-PC ausgeführt und belasten diesen deutlich mehr als Client-Programme wie Javascript. Daher nimmt die verfügbare Leistung auch für jene Clients ab, die 'statische' Webseiten ohne PHP anfordern.
Die → Interaktion mit AnwenderInnen wird mit Javascript fast immer besser und schneller gelöst. (Formulare, Buttons, Events, ...)
Zur Herstellung von dynamischer (programmierter) Grafik ist Javascript wesentlich besser geeignet (→ SVG, → Canvas).
Auch die Herstellung von umfangreichem → Code (z.B. von langen Tabellen) ist mit Javascript wesentlich effizienter als mit PHP.
Animation wird von Javascript gut unterstützt, ist jedoch mit PHP völlig ausgeschlossen.


In diesem Web wurde PHP fast vollständig durch Javascript ersetzt, und zwar insbesondere die zahlreichen interaktiven Beispiele.
Davon ausgenommen sind natürlich die ausdrücklich zur Demonstration von PHP vorgesehenen Beispiele.

PHP-Links

Wikipedia: PHP
WikiBook: Web-Entwicklung mit PHP (Tutorial)
WikiMedia: Funktions-Diagramm von PHP (Alternativ → aus diesem Web)
W3Schools: PHP (Referenz, Tutorial, Beispiele)

Tipp: Alle PHP-Beispiele dieses Webs sind mit ihrem Original-Quelltext dokumentiert.