- Warum PHP, warum dieser Kurs?
- Einleitung
- Häufig gestellte Fragen
- Exkurs: Wie funktioniert ein Webserver?
- Überprüfe dein Wissen!
- Installation des Webservers (Windows)
- Installation des Webservers (Mac)
- Installation Texteditor (Atom)
- Windows: Texteditor (Atom)
- Zahlen und Variablen
- Aufgabe + Lösung: BMI - Rechner
- Zeichenketten (Strings) in PHP
- Wichtige Funktionen: strlen, var_dump
- Booleans (Wahr / Falsch)
- Die Funktionen empty, isset und unset
- PHP: "Weak Typing" und die Auswirkungen auf die empty() - Funktion
- If - Abfragen (Bedingungen)
- Was bedeutet !empty()?
- Weitere String - Funktionen
- Quiz: Strings und PHP
- Schleifen: while
- Schleifen: for
- Quiz: For-Schleifen
- Aufgabe: Schleifen
- Musterlösung zur Aufgabe Schleifen
- Break und Continue
- include, include_once, require, require_once
- Aufgabe: Zerlegung von HTML
- Arrays in PHP
- Arbeiten mit Arrays
- Schleife: foreach
- Assoziative Arrays (=>)
- Die Funktionen isset, empty, unset auf Array - Elementen
- Exkurs: Unterschied: null vs. unset
- Arrays verschachteln
- Short Array Syntax
- Aufgabe: Arrays
- Musterlösung: Aufgabe Arrays
- Eigene Funktionen definieren
- Das global - Keyword
- Wie werden Parameter einer Funktion übergeben? Referenz vs. Wert
- Standardparameter
- Quiz: Funktionen in PHP
- Rekursion
- Warum Objektorientierung?
- Klasse definieren und Instanz erstellen
- Constructor - Methoden
- private vs. public
- Vererbung
- Jede Klasse in eigener Datei?!
- Autoloading
- Typisierte Funktionen, Interfaces
- Zur Datenbank verbinden: PDO vs. mysql vs. mysqli
- Einrichten des Projektes
- Tabelle erstellen und Datenbank abfragen
- Ausgabe des HTML - Codes
- Anlegen einer weiteren Unterseite
- Post anzeigen, $pdo->fetch(), $_GET - Parameter
- Achtung! Anwendung unsicher: SQL-Injection
- ID - Spalte in Datenbank
- Praktische Funktion: nl2br
- Hinweis zur nächsten Lektion
- Datenbank absichern
- Namespaces
- Use und Namespaces
- Autoloading & Namespaces
- Autoloading - Standards: psr-0 vs. psr-4
- Exkurs: Welchen Editor zum Entwickeln?
- Einbau Autoloading
- Das Repository - Pattern
- Repository - Pattern, Übergeben der Datenbankverbindung im Constructor
- Der Model - Layer
- PDO::FETCH_CLASS
- Das Interface: ArrayAccess
- Zauberhafte Methoden: "magic methods"
- Das Callable - Interface
- Closures
- Arrays sortieren
- Auf variable Eigenschaft zugreifen
- Aufgabe: ArrayAccess einbauen für Models
- Musterlösung: ArrayAccess einbauen für Models
- Container I
- Container II
- Container III
- Controllers
- Controller & Views
- Aufgabe + Lösung: Controller & Views
- Controller: render() - Methode