Websiteentwicklung: PHP: Praktische Einführung: Vorwort

Aus Wikibooks

Konzept[Bearbeiten]

  • Zielgruppe: Anfänger in der PHP-Programmierung. Kenntnisse von einfachem XHTML (Abschnitt Grundlagen), später auch SQL (Grundlagen und JOIN) werden vorausgesetzt.
  • Lernziele: Nach den praxisorientierten Kapiteln sollen grundlegende PHP-Kenntnisse vorhanden sein. Der Leser muss nicht jeden Aspekt der Sprache kennen, sondern sollte die am häufigsten gebrauchten Elemente verständig anwenden können. Er weiß, wie er sich selbstständig weiterführende Informationen beschaffen und auf häufig auftretende Fehlermeldungen reagieren kann, verwendet Best Practices, kennt mögliche Angriffsvektoren und trifft entsprechend Vorsorge.
  • Buchpatenschaft/Ansprechperson: Zur Zeit niemand. Buch darf übernommen werden.
  • Sind Co-Autoren gegenwärtig erwünscht? Wiki-Prinzip: Alle können sich beteiligen.
  • Richtlinien für Co-Autoren:
    • Anrede: Du
    • Rechtschreibung: Neu
    • Coding-Standard: PEAR (zweifache statt vierfache Einrückung)
    • Nicht-PHP-Elemente (XHTML, Design, Bilder, Beispieldaten) des Beispielprojektes werden zum Download angeboten, da hier nicht HTML erlernt werden soll
  • Projektumfang und Abgrenzung zu anderen Wikibooks: Aufgrund fehlender Anfängerfreundlichkeit (siehe Diskussionsseite) des bestehenden Buches ist dies ein einführender Abschnitt zu Websiteentwicklung: PHP im Tutorial-Stil, inspiriert durch das (verwaiste) Buch PHP praxisorientiert lernen. Die bereits vorhandenen Kapitel werden zu Referenzkapiteln, die auch auf nicht im Tutorial erwähnte Dinge eingehen (z.B. HEREDOC/NOWDOC).
  • Themenbeschreibung: Grundlagen der PHP-Programmierung, erklärt anhand eines Beispielprojekts (dynamische Website mit Benutzerinteraktion).
  • Aufbau des (Teil)buches: Die Kapitel führen in das jeweilige Thema ein und zeigen, falls möglich, Anwendungsfälle für das Beispielprojekt. Wird auf ein Thema nicht vollständig eingegangen, führen Links zu den ausführlichen, bereits vorhandenen Kapiteln dieses Buches. Übungen ergänzen die Kapitel und überprüfen das Verständnis des Lesers.

Vorwort für die Autoren[Bearbeiten]

Warum alles zweimal?[Bearbeiten]

Die bereits bestehenden Kapitel bieten eine umfangreiche Referenz zu PHP. Die Fülle an Informationen ist allerdings für einen Anfänger eher abschreckend als hilfreich, es kommt beim Lesen kein "Lernfluss" auf. Gutes Beispiel dafür sind die Websiteentwicklung: PHP: Operatoren: Der Zweck von Vergleichsoperatoren erschließt sich dem Leser erst nach Kenntnis über Kontrollstrukturen – die erwirbt er jedoch erst im folgenden Kapitel.

Die bisher bestehenden Kapitel werden durch die Einführung nicht überflüssig, sondern sind als vollständiges Kompendium weiterhin notwendig.

Warum so wenig Praxis?[Bearbeiten]

Obwohl die Überschrift "Praktische Einführung" lautet, wird der Leser erst spät echte Anwendungen kennen lernen. Das liegt zum einen daran, dass die Kenntnisse aufeinander aufbauen: Bevor der Leser mit dem superglobalen Arrays arbeiten kann, muss er die Bedeutung von Arrays kennen, und dafür wiederum Variablen. Viele Tutorials zeigen zunächst mit Beispielen, was PHP kann, und erklären erst viel später die Syntax. Der Leser wird vermutlich schon früh experimentieren, ohne zu wissen, was es mit den Zeichen für eine Bewandtnis hat. Das führt zum zweiten Grund, warum die Praxis erst fast am Ende Einzug findet: Sicherheit. Wie in den verschiedenen Foren zu PHP ersichtlich wird, ist ein häufiger Fehler fehlende oder mangelhafte Kenntnisse über Sicherheitslücken. Daher soll der Leser nicht erfahren, wie man Benutzereingaben verarbeitet, bis er über die Sicherheitsrisiken Bescheid weiß.

Vorwort für den Leser[Bearbeiten]

Diese Einführung soll dir die Grundlagen der Programmiersprache PHP näher bringen. Dabei wird Wert darauf gelegt, dass du nicht nur praktische Anwendungsbeispiele kennen, sondern auch sichere und effektive Skripte schreiben lernst.

Der praktisch orientierte Ansatz bringt es allerdings mit sich, dass nicht auf alle Details eingegangen werden kann. Ist dies der Fall, findest du in den Abschnitten jeweils Links zu umfassenderen Informationen eines Themas. Du kannst diese Abschnitte überspringen und später nachlesen.

Hinweis

Einige der verwendeten Fachbegriffe kannst du im Glossar nachschlagen. Dort findest du auch Verweise zu den Kapiteln, in denen der Begriff zum ersten Mal auftaucht.

Benötigte Vorkenntnisse[Bearbeiten]

Wikibooks hat das Lehrbuch:


Um mit diesem Buch arbeiten zu können, benötigst du allgemeine Kenntnisse im Umgang mit dem Computer. Da das Beispielprojekt eine Website zum Thema hat, wird außerdem die Beherrschung von (X)HTML vorausgesetzt. Später kommt eine relationale Datenbank hinzu, die über die Sprache SQL abgefragt wird. Allgemeine Kenntnisse über Strukturen von Programmiersprachen sind zwar hilfreich, aber nicht zwingend erforderlich; es werden alle Begriffe ausführlich eingeführt.

Das Beispielprojekt[Bearbeiten]

Nach der Einführung in die Grundelemente der Sprache wirst du eine interaktive Website erstellen. Diese fiktive Seite stellt jeden Monat ein Wikibook vor.

Die Website, bisher statisch, soll um folgende Funktionen ergänzt werden:

  • Templates, um das Layout vom Inhalt und beide vom Programmcode zu trennen
  • einen Front-Controller (Alle Unterseiten werden von einer index.php aufgerufen)
  • eine relationale Datenbank, um die Artikel dort zu speichern
  • Benutzerauthentifizierung
  • Kommentare unter den Artikeln
  • Vorschläge für neue Buchvorstellungen einreichen

Was ist PHP?[Bearbeiten]

PHP (Backronym für PHP: Hypertext Preprocessor) ist eine Programmiersprache, die 1995 von Rasmus Lerdorf unter dem damaligen Namen PHP/FI begründet wurde. Sie war von Beginn an für den Einsatz auf Webservern vorgesehen, inzwischen kann PHP jedoch für fast jede Programmieraufgabe herangezogen werden, sogar für Desktopapplikationen (mit der Erweiterung PHP-GTK). Es handelt sich um eine Skriptsprache, was bedeutet, dass alle PHP-Programme bei jeder Ausführung durch einen Interpreter geschickt werden, der die Befehle parst (in interne Symbole übersetzt) und dann zur Laufzeit interpretiert. Ein PHP-Programm besteht aus Anweisungen, die Schritt für Schritt abgearbeitet werden. Sobald alle Anweisungen ausgeführt worden sind, wird das Skript bzw. Programm beendet. Im Gegensatz zu anderen Sprachen dauern die Skripte daher normalerweise nur wenige Sekunden.

PHP ist nicht Javascript[Bearbeiten]

PHP ist eine serverseitige Programmiersprache. Die Befehle werden auf einem Webserver ausgeführt und die Ausgabe an den Browser des Benutzers zurückgesendet. Im Gegensatz zu Javascript kann der Benutzer nicht den Code deines Skriptes einsehen (außer, der Server ist fehlerhaft konfiguriert). Gleichzeitig kannst du so Inhalte vor Benutzern verstecken, die diese nicht sehen sollen, etwa eine Administrationsoberfläche.

Ruft der Benutzer ein PHP-Skript auf, wird jedoch die komplette Seite neu geladen. Das zeigt einen weiteren Unterschied zu Javascript. Nur mit letzterer Sprache kann man z.B. Tabellen ohne Neuladen aufklappen oder beim Tippen ein Eingabefeld rot färben, weil die Eingabe ungültig ist (was einen Benutzer nicht daran hindern kann, dennoch ungültige Eingaben zu senden; siehe dazu das Kapitel Benutzereingaben und Sicherheit).

Wenn du beide Sprachen kombinieren möchtest, solltest du einen Blick in das Wikibook AJAX werfen.