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 Throwable Interface 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