Modul A · Grundlagen · Lektion A3
PHP lernen: ein Lernpfad vom ersten Skript bis zum eigenen Projekt
PHP gilt als einsteigerfreundlich, und das stimmt: Ein erstes Ergebnis siehst du nach wenigen Minuten. Die Kehrseite ist, dass man sich leicht in schlechte Gewohnheiten verrennt, weil vieles „irgendwie funktioniert“. Ein klarer Lernpfad hilft, die Grundlagen sauber zu legen, bevor die großen Werkzeuge kommen.
Lernziele
- Du kennst eine sinnvolle Reihenfolge der Lerninhalte.
- Du hast für jede Etappe eine konkrete Übung.
- Du erkennst veraltete Lernmaterialien.
Vorab: was du brauchst
Du brauchst keinen teuren Rechner und keine Serverkenntnisse. Ein Editor wie VS Code oder eine IDE wie PhpStorm, dazu eine lokal installierte PHP-Version – mehr ist für den Anfang nicht nötig. Wie du das einrichtest, erklärt die Lektion Lokale Entwicklungsumgebung. Grundkenntnisse in HTML sind hilfreich, weil PHP fast immer HTML erzeugt.
Etappe 1: Syntax und Grundbausteine
Variablen, Datentypen, Operatoren, Bedingungen, Schleifen und Funktionen. Lerne von Anfang an mit declare(strict_types=1); und Typangaben, auch wenn ältere Anleitungen darauf verzichten.
Übung: Schreibe ein Skript auf der Kommandozeile, das für die Zahlen 1 bis 100 „Fizz“, „Buzz“ oder die Zahl ausgibt. Das klingt banal, trainiert aber Schleifen, Bedingungen und Modulo.
Etappe 2: Arrays und Zeichenketten
In PHP sind Arrays das Schweizer Taschenmesser: Liste, Wörterbuch und Stapel in einem. Lerne die wichtigsten Funktionen wie array_map(), array_filter(), usort() und implode() kennen, ebenso den Umgang mit mehrbyte-fähigen Zeichenketten über die mb_-Funktionen – Umlaute sind sonst eine zuverlässige Fehlerquelle.
<?phpdeclare(strict_types=1);class="va">$noten = ['Mathe' => 2, 'Deutsch' => 1, 'Informatik' => 1];class="va">$sehrGut = array_keys(array_filter(class="va">$noten, fn(int class="va">$n): bool => class="va">$n === 1));echo implode(', ', class="va">$sehrGut); // Deutsch, InformatikÜbung: Lies eine CSV-Datei mit fgetcsv() ein und gib Summen je Spalte aus.
Etappe 3: Formulare, Anfragen und Ausgabe
Jetzt kommt der Browser ins Spiel. Du lernst, wie $_GET und $_POST funktionieren, wie Sessions Daten zwischen Seitenaufrufen halten und – ganz wichtig – warum jede Ausgabe mit htmlspecialchars() maskiert werden muss. Die Details dazu stehen in der Lektion über Sicherheitsgrundlagen.
Übung: Ein Kontaktformular mit Validierung, Fehlermeldungen und erneut befüllten Feldern – ohne es tatsächlich zu versenden.
Etappe 4: Datenbanken mit PDO
Die meisten Anwendungen speichern Daten in einer Datenbank wie MariaDB, MySQL, PostgreSQL oder SQLite. Nutze von Anfang an PDO mit vorbereiteten Anweisungen (Prepared Statements). SQLite ist zum Lernen ideal, weil keine Serverinstallation nötig ist.
Übung: Eine kleine Aufgabenliste: anlegen, anzeigen, als erledigt markieren, löschen.
Etappe 5: Objektorientierung
Klassen, Interfaces, Sichtbarkeiten, Konstruktor-Promotion, Enums und readonly. Wichtiger als jedes Schlüsselwort ist das Verständnis, warum man Code in Verantwortlichkeiten aufteilt. Baue die Aufgabenliste aus Etappe 4 so um, dass die Datenbanklogik in einer eigenen Klasse steckt.
Etappe 6: Werkzeuge und ein eigenes Projekt
Jetzt lohnen sich Composer, automatische Tests mit PHPUnit und ein erster Blick auf ein Framework. Suche dir ein Projekt, das dich selbst interessiert: eine Rezeptsammlung, ein Vereinskalender, ein Tool für die eigene Arbeit. Ein echtes Ziel hält die Motivation hoch.
Veraltetes Material erkennen
Das Netz ist voll von PHP-Anleitungen, die vor zehn oder fünfzehn Jahren geschrieben wurden. Warnsignale sind:
- Funktionen mit
mysql_-Präfix (ohne „i“) – sie wurden mit PHP 7 entfernt. - SQL-Abfragen, in die Variablen direkt hineingeklebt werden.
- Passwörter, die mit
md5()odersha1()„verschlüsselt“ werden. - Keinerlei Typangaben und keine Erwähnung von Composer.
Die verlässlichste Quelle bleibt das offizielle PHP-Handbuch, das es auch auf Deutsch gibt. Die Kommentare unter den Handbuchseiten sind teils sehr alt – lies sie mit Vorsicht.
Wann du bereit für ein Framework bist
Ein Framework wie Laravel oder Symfony nimmt dir viel Arbeit ab, versteckt aber auch viel. Du bist bereit, wenn du erklären kannst, was bei einer Anfrage vom Browser bis zur Antwort passiert, wie eine Session funktioniert und warum Prepared Statements vor SQL-Injection schützen. Welche Frameworks es gibt, beschreibt Frameworks und CMS.
Selbstcheck
Womit solltest du Datenbanken ansprechen?
Mit PDO und vorbereiteten Anweisungen (Prepared Statements).
Woran erkennst du veraltete Tutorials?
Etwa an mysql_-Funktionen, md5-Passwörtern, fehlenden Typen und direkt eingebauten Variablen in SQL.
Warum eignet sich SQLite zum Lernen?
Es braucht keinen Datenbankserver – die ganze Datenbank ist eine einzige Datei.