Wie kann die Anpassung von OOP-Konzepten wie abstrakten Klassen und Interfaces zur Verbesserung der Code-Wartbarkeit und Erweiterbarkeit in PHP beitragen?

Die Anpassung von OOP-Konzepten wie abstrakten Klassen und Interfaces trägt zur Verbesserung der Code-Wartbarkeit und Erweiterbarkeit bei, da sie eine klare Struktur und Trennung von Verantwortlichkeiten fördern. Abstrakte Klassen ermöglichen es, gemeinsamen Code zu abstrahieren und Wiederverwendung zu fördern, während Interfaces eine klare Vertragsdefinition für Klassen bieten, die sie implementieren. Durch die Verwendung dieser Konzepte wird der Code modularer, leichter zu verstehen und zu erweitern.

<?php
// Abstrakte Klasse
abstract class Shape {
    abstract public function calculateArea();
}

// Konkrete Klasse, die von der abstrakten Klasse erbt
class Circle extends Shape {
    private $radius;

    public function __construct($radius) {
        $this->radius = $radius;
    }

    public function calculateArea() {
        return pi() * $this->radius * $this->radius;
    }
}

// Interface
interface Logger {
    public function log($message);
}

// Klasse, die das Interface implementiert
class FileLogger implements Logger {
    public function log($message) {
        file_put_contents('log.txt', $message, FILE_APPEND);
    }
}
?>