Hier starten
  • Warum PHP, warum dieser Kurs?
  • Einleitung
  • Häufig gestellte Fragen
Vorbereitung
  • Exkurs: Wie funktioniert ein Webserver?
  • Überprüfe dein Wissen!
  • Installation des Webservers (Windows)
  • Installation des Webservers (Mac)
  • Installation Texteditor (Atom)
  • Windows: Texteditor (Atom)
Erste Schritte in PHP
  • 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
Weitere Grundlagen
  • 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
Weitere Grundlagen (2)
  • 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
Funktionen
  • Eigene Funktionen definieren
  • Das global - Keyword
  • Wie werden Parameter einer Funktion übergeben? Referenz vs. Wert
  • Standardparameter
  • Quiz: Funktionen in PHP
  • Rekursion
Objektorientierung
  • Warum Objektorientierung?
  • Klasse definieren und Instanz erstellen
  • Constructor - Methoden
  • private vs. public
  • Vererbung
  • Jede Klasse in eigener Datei?!
  • Autoloading
  • Typisierte Funktionen, Interfaces
Projekt: Blog programmieren
  • 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
Objektorientierung (II)
  • Namespaces
  • Use und Namespaces
  • Autoloading & Namespaces
  • Autoloading - Standards: psr-0 vs. psr-4
  • Exkurs: Welchen Editor zum Entwickeln?
Blog II
  • Einbau Autoloading
  • Das Repository - Pattern
  • Repository - Pattern, Übergeben der Datenbankverbindung im Constructor
  • Der Model - Layer
  • PDO::FETCH_CLASS
Objektorientierung (III)
  • Das Interface: ArrayAccess
  • Zauberhafte Methoden: "magic methods"
  • Das Callable - Interface
  • Closures
  • Arrays sortieren
  • Auf variable Eigenschaft zugreifen
Blog III
  • 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