Objektorientierte Programmierung (OOP) ist ein Programmierparadigma, das darauf abzielt, die Struktur und das Verhalten von Software durch die Modellierung von Objekten aus der realen Welt zu organisieren. In PHP ermöglicht OOP Entwicklern, komplexe Anwendungen auf eine modulare und leicht verständliche Weise zu erstellen. Objekte sind dabei Instanzen von Klassen, die sowohl Daten (Eigenschaften) als auch Funktionen (Methoden) enthalten.
1. Klassen und Objekte: Eine Klasse ist ein Bauplan für Objekte. Sie definiert, welche Eigenschaften und Methoden die Objekte haben werden. Ein Objekt ist eine Instanz einer Klasse.
```php class Auto { public $farbe; public $marke; public function beschreibe() { return “Dieses Auto ist ein $this->farbe $this->marke.”; } } $meinAuto = new Auto(); $meinAuto->farbe = “rot”; $meinAuto->marke = “BMW”; echo $meinAuto->beschreibe(); // Ausgabe: “Dieses Auto ist ein rot BMW.“ ```2. Vererbung: Eine Klasse kann die Eigenschaften und Methoden einer anderen Klasse erben, wodurch Code-Wiederverwendung und Hierarchien möglich werden.
```php class Elektrowagen extends Auto { public $batterieKapazität; public function beschreibeBatterie() { return “Dieser Elektrowagen hat eine Batterie mit $this->batterieKapazität kWh.”; } } $meinElektroAuto = new Elektrowagen(); $meinElektroAuto->farbe = “blau”; $meinElektroAuto->marke = “Tesla”; $meinElektroAuto->batterieKapazität = 75; echo $meinElektroAuto->beschreibe(); // Ausgabe: “Dieses Auto ist ein blau Tesla.“ echo $meinElektroAuto->beschreibeBatterie(); // Ausgabe: “Dieser Elektrowagen hat eine Batterie mit 75 kWh.“ ```3. Kapselung: Kapselung bedeutet, dass die Daten einer Klasse nur über definierte Methoden (Getter und Setter) zugänglich sind. Dies hilft, die Integrität der Daten zu bewahren.
```php class Bankkonto { private $kontostand; public function setKontostand($betrag) { if ($betrag >= 0) { $this->kontostand = $betrag; } } public function getKontostand() { return $this->kontostand; } } $meinKonto = new Bankkonto(); $meinKonto->setKontostand(100); echo $meinKonto->getKontostand(); // Ausgabe: 100 ```4. Polymorphismus: Polymorphismus ermöglicht es, dass unterschiedliche Klassen dieselben Methoden mit unterschiedlichen Implementierungen haben können. Dies wird häufig durch Schnittstellen (Interfaces) oder abstrakte Klassen erreicht.
```php interface Fahrzeug { public function fahren(); } class Auto implements Fahrzeug { public function fahren() { return “Das Auto fährt.”; } } class Fahrrad implements Fahrzeug { public function fahren() { return “Das Fahrrad fährt.”; } } function testFahrzeug(Fahrzeug $fahrzeug) { echo $fahrzeug->fahren(); } $meinAuto = new Auto(); $meinFahrrad = new Fahrrad(); testFahrzeug($meinAuto); // Ausgabe: “Das Auto fährt.“ testFahrzeug($meinFahrrad); // Ausgabe: “Das Fahrrad fährt.“ ```
1. PHP Manual – Object-oriented programming [php.net](https://www.php.net/manual/en/language.oop5.php)
2. “Head First Object-Oriented Analysis and Design” von Brett McLaughlin, Gary Pollice, David West – für allgemeine Konzepte der OOP
3. “PHP Objects, Patterns, and Practice” von M. Zandstra – eine speziell auf PHP fokussierte Quelle für OOP.
4. PHP Tutorial – OOP [w3schools](https://www.w3schools.com/php/php_oop_what_is.asp)
Durch die Anwendung von OOP in PHP können Entwickler sauberen, wiederverwendbaren und wartbaren Code schreiben. OOP hilft bei der Verwaltung komplexer Projekte, indem es eine flexible Struktur bietet, die an sich ändernde Anforderungen angepasst werden kann. Diese Prinzipien machen OOP zu einer mächtigen Technik für die PHP-Entwicklung.