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,