Logowanie z użyciem dekoratorów (np. dodawanie informacji o czasie wykonania)
Założenie: Stworzymy prosty logger, który będzie rejestrował komunikaty. Następnie za pomocą dekoratora dodamy funkcjonalność mierzenia czasu wykonania i dodawania tej informacji do logowanego komunikatu.
Krok po kroku:
- Stworzenie podstawowego loggera:
- Implementacja dekoratora:
- Użycie dekoratora:
Ten prosty logger wyświetla przekazany komunikat na ekranie.
logger = $logger;
}
public function log($message) {
$startTime = microtime(true);
$this->logger->log($message);
$endTime = microtime(true);
$executionTime = $endTime - $startTime;
echo "Czas wykonania: " . $executionTime . " sekund\n";
}
}
?>
Dekorator owija istniejący logger i dodaje funkcjonalność mierzenia czasu.
log("Użytkownik zalogował się.");
?>
Tutaj tworzymy instancję loggera i dekoratora, a następnie używamy dekoratora do logowania komunikatu. Wyświetli on komunikat i czas jego wykonania.
Ten przykład pokazuje podstawowe zastosowanie dekoratorów w PHP do rozszerzania funkcjonalności istniejących klas. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi wzorcami projektowymi!