Avatar ·

Wie man eine Trait-Methode in PHP überschreibt und sie aus der überschriebenen Methode aufruft?

Hallo zusammen! Ich lerne PHP und bin auf ein Problem mit Traits gestoßen. Die Situation ist folgende: Ich habe einen Trait `Logger`, der eine Methode `log($message)` enthält. Diese Methode gibt einfach eine Nachricht in der Konsole aus. Ich möchte diesen Trait in der Klasse `UserService` verwenden, muss aber das Verhalten der Methode `log` ändern: der Nachricht ein Präfix mit dem Klassennamen hinzufügen. Nach dem Überschreiben kann ich jedoch die Originalversion aus dem Trait nicht aufrufen. Hier ist ein Beispielcode: ```php trait Logger { public function log($message) { echo "LOG: " . $message . "\n"; } } class UserService { use Logger; public function log($message) { // Ich möchte die Elternmethode des Traits aufrufen, weiß aber nicht wie // parent::log($message); // Fehler! echo "[" . __CLASS__ . "] " . $message . "\n"; } } $service = new UserService(); $service->log("Benutzer erstellt"); ``` Ich habe versucht, `parent::log()` zu verwenden, aber das funktioniert nicht – es gibt einen Fehler aus. Ich habe auch versucht,