PHP OOP – Fortgeschrittene Technologien
Einleitung
Dieses Seminar vertieft die objektorientierte Programmierung (OOP) in PHP für die Entwicklung komplexer und skalierbarer Anwendungen. Im Fokus stehen saubere Software-Architekturen, die Implementierung gängiger Entwurfsmuster (Design Patterns), Metaprogrammierung sowie die Nutzung moderner Sprachfeatures (ab PHP 8.x). Ziel ist das Schreiben von wartbarem, testbarem und stark typisiertem Code nach aktuellen Industriestandards.
Zielgruppe & Voraussetzungen
- Zielgruppe: Erfahrene PHP-Entwickler, Backend-Software-Engineers und Architekten.
- Voraussetzungen: Gefestigtes Wissen in der PHP-Syntax und den Grundlagen der Objektorientierung (Klassen, Objekte, Vererbung, Sichtbarkeiten).
Detaillierte Inhalte
Architektur-Prinzipien und Code-Design
- SOLID-Prinzipien in der PHP-Praxis umsetzen
- Interfaces vs. Abstrakte Klassen: Gezielte Architekturentscheidungen
- Dependency Injection (DI) und Inversion of Control (IoC)
- Aufbau loser Kopplung für testbaren Code
Erweiterte Objektorientierung
- Traits: Horizontale Code-Wiederverwendung, Precedence und Konfliktauflösung
- Anonyme Klassen: Einsatzszenarien, Syntax und Memory Management
- Magische Methoden im Detail (
__invoke,__clone,__sleep,__wakeup,__callStatic) - Objekt-Klonen: Flache vs. tiefe Kopien (Deep Copy) implementieren
- Strikte Typisierung: Union Types, Intersection Types, Return Type Hinting (
static,mixed,never)
Strukturierung und Autoloading
- Namespaces: Deklaration, Import (
use), Aliasing und globale Räume - Autoloading-Konzepte: Eigene Autoloader via
spl_autoload_register - PSR-4 Standard: Strukturierung von Klassen und Verzeichnissen
- Composer: Paketverwaltung, Abhängigkeiten und optimiertes Autoloading
Entwurfsmuster (Design Patterns) in PHP
- Erzeugungsmuster: Factory Method, Abstract Factory, Singleton (inkl. Anti-Pattern-Diskussion)
- Strukturmuster: Adapter, Decorator, Facade
- Verhaltensmuster: Strategy, Observer, Command
Fehlerbehandlung und Ausnahmeverwaltung
- Exception-Hierarchien: Eigene domänenspezifische Exception-Klassen entwerfen
- Try-Catch-Finally Blöcke und Exception-Bubbling steuern
- Globales Error- und Exception-Handling (
set_exception_handler,set_error_handler) - Das
ThrowableInterface ab PHP 7/8
Dynamische Programmierung und Meta-Daten
- Closures und Anonyme Funktionen (Binding und das
use-Schlüsselwort) - Arrow Functions (Pfeilfunktionen) für kompakten Code
- Reflection API: Klassen, Methoden und Eigenschaften zur Laufzeit analysieren und manipulieren
- PHP Attribute (ehemals Annotations): Eigene Metadaten definieren und via Reflection auswerten
Moderne PHP-Features für OOP (PHP 8.x)
- Constructor Property Promotion zur Code-Reduzierung
- Enumerations (Enums): Pure Enums, Backed Enums und Methoden in Enums
- Match-Expression als typsichere Alternative zu Switch
- Nullsafe Operator (
?->) und Named Arguments (Benannte Parameter) - Readonly Properties und Readonly Classes
Dauer 3 Tage